Je ne sais même pas si c'est le bon terme.Codeigniter: comment restructurer db schema?
Puis-je savoir que je suis un novice majeur!
J'ai trois tables: utilisateurs, profils et sondage. Chacun a user_id comme premier champ, (auto-incrément pour les utilisateurs), et ils sont tous liés par une contrainte de clé étrangère, CASCADE sur DELETE.
Actuellement, pour chaque utilisateur, disons user_id 1, ils ont une entrée db correspondante dans les autres tables. Pour les profils, il répertorie toutes leurs informations et la table d'enquête contient toutes les informations de l'enquête.
Maintenant, je dois changer les choses ... darn scope creep. Les utilisateurs doivent avoir la possibilité d'avoir plusieurs résultats d'enquête. J'imagine que ce serait similaire à une table de commentaires pour un blog ...
Mon application entière tourne autour de l'idée qu'un seul utilisateur est lié à un profil contraignant et à un sondage.
Comment dois-je structurer ma base de données?
Comment devrais-je concevoir la base de données de mon application pour qu'un utilisateur puisse avoir plusieurs tests/profils pour le test?
Veuillez nous aider! Tous les conseils, informations et connaissances personnelles sont appréciés!
Actuellement, la seule façon dont je sais comment accompagner mon client est de créer un pseudo-utilisateur pour chaque test (donc inutile) et les lister dans une table de vue (appelée "vos tests") - ce sont obtenu à partir de la base de données en disant: où user_id = ID_gestionnaire
Je pense que je comprends ... J'aurai d'autres questions demain! –
Cela fonctionne ... Que faire si je veux supprimer un sondage? La façon dont les choses fonctionnent (peut-être que je n'ai pas communiqué correctement), je supprime toutes les enquêtes, car elles sont liées à l'id_utilisateur. –
Pour supprimer (ou sélectionner ou mettre à jour) toutes les enquêtes pour un utilisateur, utilisez l'id_utilisateur: par exemple, supprimer de l'enquête où ID_utilisateur = x; ou, supprimez l'utilisateur et laissez la cascade supprimer sur le fk les supprimer pour vous. Si vous souhaitez supprimer (ou sélectionner ou mettre à jour) un seul sondage, utilisez l'identifiant de ce sondage. – tpdi