Merhaba,
Kendi kodladığım PHP web sitemde premium üyelik satışı yapmaya başlayacağım. Altyapıyı iyzico ile sağladım pakete göre ödeme işlemleri sorunsuz yapılıyor ve sonuç sayfasına aktarılıyor. Eğer ödeme başarılıysa kullanıcıya premium üyeliği tanımlayacağım fakat mantığını kuramadım.
Veritabanımda:
1) Premium adında bir tablom var. Bu tabloda id, premiumisim, fiyat bilgilerini tutuyorum.
2) Users adında tablomda ise kullanıcı bilgileri var. Premiumid şeklinde bir sütun oluşturdum ve buraya premium tablosundaki id'yi yerleştireceğim. Diğer sayfalarda da buradaki id'ye göre işlem yapılacak.
Sorun şu, bütün üyelikler bir aylık. Premium üyelik ne zaman alınmış ve ne zaman bitecek gibi bilgileri nerede ve nasıl tutacağım?
Not: Belki mantığı bunun üzerinden kurabiliriz. Premiumİslem adında bir tablo oluşturup bütün başarılı işlemleri kaydetmeyi düşünüyorum. Kullanıcı id, premium paket id, satın aldığı tarih ve bitiş ( aldığı tarihin bir ay sonrası) Eğer süreyi bu tablo üzerinden kontrol edersem tekli çekme sorgumu nasıl yazacağım?
Not2: PremiumIslem tablosunda her işleme bir id gelecek. Bu idleri de kullanıcı tablosunda premiumid alanına yazdırırsam ve lazım olduğunda üç tabloyu birleştirerek kullanıcının kim olduğunu hangi paketi ne zaman aldığını, ne zaman biteceğini görebiliyorum ve sorunu çözüyorum sanırım öyle değil mi? Başarılı sayfasında ilk olarak premiumislem'e Insert yapılacak sonra users tablosundaki premiumid'ye update (konuyu anlatırken aklıma geldi)
Premium Üyelik Yazılım Mantığı + Veritabanı
1
●141
- 25-01-2020, 13:20:06`premiums` isminde bir tablo oluştur
(id,
premium_id,
premium_user_id,
premium_start,
premium_expiration
)
Bu şekilde bir yapıyı kullanabilirsin. Kullanıcı panelinse ise premium_user_id ile bir kayıt varsa tarihini kontrol ettir (premium_expiration). Eğer birden fazla premium çeşidi varsa (R10'daki gibi) tanımlanan premium paketine ait id'i premium_id olarak tutabilirsin.
Eğer sayfada premium ismini göstermek istersen;
`premium_packages` olarak bir tablo oluştur
(
id,
premium_id,
premium_name
)
olarak bir yapı oluşturabilirsin.
Yazılımda da kullanıcının premium_id'sini alıp bu tabloda eşleşen premium_id'nin premium_name'ini kullanabilirsin.