Je viens ici pour demander votre aide sur un projet, en fait c'est plus pouvoir savoir si je ne fait pas d'erreur de conception et / ou avoir vos avis sur ma façon de faire (et idée d'améliorations aussi pourquoi pas )
Donc en gros c'est assez "simple" le membre pour avoir accès à certaines partie du site doit payer (via paypal mais ça ne nous intéresse pas ici)
Celui-ci après plusieurs payements (même après le 1er) aura un historique de ceux ci.
Il pourra aussi s'il le souhait prolonger son abonnement (sans que le précédant soit effacé) ceci apparaitra dans son historique
Donc il existe plusieurs abonnement :
1 mois
3 mois
6 mois
Il pourrait prendre l'abonnement 1 mois puis après une semaine prendre l'abo 6 mois il lui resterait donc 6 mois et 3 semaines
Voici comment j'organiserais ma table "abonnement" :
id | id_membre | id_type_abo | date_achat
Et enfin ma table "type_abo" :
id | duree | prix
Grâce à ça je peux dresser un historique (SELECTdate_achatFROMabonnementWHEREid_membre=... avec une jointure pour la durée et le prix, rien de compliquer)
On peut contrôler pour voir si il à toujours accès à la partie site en sélectionnant date_achat + durée > temps maintenant (NOW())
Que faut-il faire d'autre ?
Est-ce une bonne façon de faire ?
Des suggestions ? Elles sont toutes les bienvenues !
Je te conseille de faire une vue sur la table membre pour ajouter une colonne de façon à savoir à un instant t pour un membre la date de fin des abonnements cumulés.
Avec ma méthode, comment pourrais je faire pour connaitre le nombre de mois déjà utilisé (donc déjà passé depuis le début de l'abo) ?
J'ai cherché mais je parviens pas à résoudre le problème !
La structure que tu proposes a un problème : quand tu modifies la durée d'un abonnement, tous les utilisateurs qui ont acheté cet abonnement ont leur durée modifiée. Si un mec a payé pour un forfait "machin" de 2 mois et que tu décides de ramener la durée à 1 mois (pour le même prix, évidemment !) il va peut-être pas apprécier !
Donc, soit tu ne modifies jamais la table type_abo (quand tu veux créer ou modifier un abonnement, tu te contentes d'ajouter des lignes) soit tu utilises une autre structure.
Par exemple (comme pour les sites de e-commerce) on garde dans une table membres_abonnements (équivalent de ta table abonnements) une copie des infos de l'abonnement au moment où le mec a souscrit (donc prix, durée, etc).
Et tu gardes dans la table utilisateurs la date d'expiration (tu pourrais aussi la recalculer à la volée).
Conception table abonnements
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mes projets : WhoisRedJohn, fatidique et MusicAll. Mon Github
Mes projets : WhoisRedJohn, fatidique et MusicAll. Mon Github
Mes projets : WhoisRedJohn, fatidique et MusicAll. Mon Github
Mes projets : WhoisRedJohn, fatidique et MusicAll. Mon Github
Mes projets : WhoisRedJohn, fatidique et MusicAll. Mon Github
Mes projets : WhoisRedJohn, fatidique et MusicAll. Mon Github