Je développe une application de gestionnaire de tâches multi-utilisateur mais j'ai trébuché sur la conception de schéma de base de données. J'ai la table d'utilisateur, la catégorie et bien sûr la table de tâche. Chaque tâche appartient à exactement une catégorie. Donc, dans les mots DDL j'ai besoin d'une relation «un-à-plusieurs» entre la catégorie et la tâche, n'est-ce pas? Aussi, je suis presque sûr que j'ai besoin d'une relation «un-à-plusieurs» entre les entités utilisateur et tâche. (Corrigez-moi si j'ai tort, s'il-vous plait). Quant à la « catégorie - utilisateur » relation, ici je considère sérieusement deux options et je dois vous me dire quel est le bon et pourquoi:Quelle structure de tables est la meilleure?
La relation « many-to-many », à savoir l'utilisateur peut avoir plusieurs catégories et vice-versa;
La relation "un-à-plusieurs" dans laquelle chaque catégorie peut se rapporter à un seul utilisateur. Dans ce cas, dans le tableau des catégories, il y aura beaucoup de lignes avec des noms similaires tels que "travail", "famille" etc. (car il est difficile de trouver quelque chose de nouveau et d'original en ce qui concerne les catégories). Valeur de la colonne "utilisateur".
Quelle approche est commune dans cette situation?
Pourquoi avez-vous besoin d'une table pour 'category-user'? Vous pouvez obtenir ceci en joignant les tables de relation pour 'task_category' et' user_task'. – Barmar
En fait, vous avez peut-être raison. J'essaie et ne peux penser à aucun des inconvénients de cette solution. Pensez-vous vraiment que je pourrais en bénéficier à votre façon? – dKab
Je ne vois pas non plus le besoin de lier des utilisateurs avec des catégories, sauf si vous voulez que chaque utilisateur "possède" ou "crée" ses propres catégories pour une raison quelconque. Si l'utilisateur 1 et l'utilisateur 2 veulent tous les deux une catégorie appelée "travail", il doit s'agir d'une catégorie partagée, sauf si une raison spécifique l'empêche d'être (par exemple, s'il existe d'autres attributs dans la catégorie qui doivent être spécifiques à l'utilisateur). Dans ce cas, la catégorie aurait une clé étrangère à l'utilisateur. –