öncelike karar vermen gereken, davetiye sisteminin çalışma mantığı olmalı. Kullanıcı, kayıt olurken referans olarak ne yazacak?
a. mevcut üyenin adı
b. mevcut üyeden aldığı referans kodu
üye adını yazma işi biraz rastgele tutturma ihtimalini arttırır, bunu engellemek için üyelik başvurusu sonrasında referans üyeye de onay gidip, şu isimli arkadaş senin referansınla üye olmak istiyor onaylıyor musun vs.. benzeri onay istenebilir. aslında referans kodu için de fena olmaz ama orası sana kalmış.

sonra, veritabanı ve referans üreteç & onay yapısına karar vermen gerekir,
a. davetiye kodları veritabanında cron ile üretilip boşta bekletilebilir, her üye için 10 adet üretilir, kullanıldıkça bir kolona kullanıldı=1 yapılabilir mesela. onay işleminde bu kodları sorgulatıp varsa ve müsaitse tamam verdim denir.
b. üye adını veya sıra numarasını alıp bir algoritmaya sokup lisans anahtarı benzeri bir referans kodu üretilebilir.
c. doğrudan üye adı/üye eposta adresi yazdığın zaman üyeden onay alınıp işlem tamamlanabilir.
her durumda üye tablonda bence olması gereken birkaç alan;
1. davet sayısı[0...10]
2. davet eden [üye adı/üye id/üye eposta ()önemli olan unique olması]

bir de davet tablosu açıp, ekstra olarak gönderilen gönderilmeyen askıda bekleyen davetiyeleri, gönderim ve onay tarihleri vs.vs.. bilgileri tutarsan daha sağlıklı olur. kabaca ben olsam bu mantık üzerinden giderdim. oturup kod yazmak isterdim ama kendin yapman her açıdan daha mantıklı olur ve yapabileceğine inanıyorum