Bonjour à toutes et à tous,
Je suis débutant en conception de base, et afin de concevoir une application web basée sur du php/mysql, j'ai voulu tout d'abord poser à plat afin d'avoir un code optimiser. J'aimerai d'abord optimiser au mieux la base de donnée correspondante, et ainsi utiliser plus tard de l'objet sql et des procédures stockées, mais je n'en suis pas encore à là.
Légende :
NN = Non Nulle
PK = Clé primaire
Int = entier
Varchar = Chaine de caractère
Mon problème du moment est assez simple, j'ai trois tables :
table utilisateurs : idUtilisateurs en PK Int AI, identifiant en attribut unique et varchar(45) NN, email en attribut unique et varchar(65) NN
table fans : idFans en pk Int AI, FanStar en Int NN
table fansites : idFansite en PK Int AI, Nom en attribut unique et varchar(45) NN, Catégorie en attribut unique et varchar(45) NN
Les relations :
1 - Un utilisateur peut devenir un fan.
2 - Un fan est obligatoirement un utilisateur.
3 - Un fan peut être fans de plusieurs fansites.
4 - Un fansite peut avoir plusieurs fans.
Pour la relation n:n entre fan et fansites, je passe par une table intermédiaire fansites_has_fan avec idFans et idFansites en PK. Est-ce que ça me permettra ensuite via une procédure stockée d'avoir la liste de tous les fansites dont le fan est "fan" en questionnant la table fansites_has_fan ? Ou encore la liste de tous les fans appartenant à un fansite en questionnant la table fansites_has_fan ? Si non, comment faire ?
Pour la relation entre l'utilisateur et le fan, je ne sais pas comment faire, j'ai beau réfléchir, je tombe sur une relation de type 1:1, ce qui est une erreur de conception et donc, que je peux fusionner mes deux tables. Mais dans ce cas là, comment je fais pour la relation 1, vu qu'un utilisateur peut ne pas être un fan ?
Merci pour votre aide
Partager