J'ai repris une application qui a un backend SQL. Il y a plusieurs tables, mais les deux que je suis préoccupé sont les suivants:Aide de la conception de table SQL
QAProfile
---------
ProfileID <pk> -int
ProfileName
SecurityGroups -varchar(max)
SecurityGroups
--------------
GroupID <pk> -int
GroupName
Mon problème est que le champ de SecurityGroups est une liste délimitée par des virgules des valeurs GROUPID.
Ainsi, la table de profil ressemble à ceci:
--------------------------------------------
| ProfileID | ProfileName | SecurityGroups |
--------------------------------------------
| 1 | foo | ,1,13,34,56, |
--------------------------------------------
| 2 | bar | ,4,13,29,56, |
--------------------------------------------
Un profil peut avoir des groupes de sécurité Muliple et un groupe de sécurité peut être sur les profils Muliple
Toutes les suggestions sur la façon de réorganiser cela?
vôtre est plus agréable, vous avez même ajouté les FK! Je pensais qu'ils pourraient le faire eux-mêmes. – Sage
Je ne suis pas d'accord avec l'affirmation: "les listes séparées par des virgules n'appartiennent pas à la base de données SQL" semble un peu dogmatique - il existe certainement des circonstances où une telle stratégie est grandement bénéfique pour des raisons de performance. – James
@James: Vous avez un point. Ajouté "en général" à cette phrase pour être plus précis. –