Comment créer un utilisateur/groupe d'associations dans MySQL
Je suis en train de travailler sur une application web en PHP/MySQL et j'en suis venu au point où j'ai besoin de créer un utilisateur/groupe de l'association.
Voici ce que je suis en tournage pour:
-
Je vais avoir un nombre toujours croissant d'utilisateurs et de groupes.
-
Les utilisateurs seront en mesure de modifier leur groupe d'associations
chaque fois qu'ils veulent. -
Le groupe association va dicter la priorité de contenu
affiché sur le site. -
Mises à jour par courriel envoyé à l'utilisateur sera déterminée par leur groupe actuel
associations.
Ma question est, quelle est la meilleure façon de gérer cette utilisateur/groupe de l'association?
Ma structure actuelle de la table ressemble à ceci (Simplifié pour faciliter la communication):
Users:
User_ID, User_name, Fname, Lname, is_dealer
Deals:
Deal_ID, Dealer_ID, Deal_name, Deal_content
Dealers:
Dealer_ID, User_ID, Dealer_name, Dealer address.. etc.
Mes premières pensées sont pour créer un tableau des Groupes avec Group_ID, et Group_name colonnes. Ensuite, j'ai pu faire une de deux choses:
Je pouvais créer une colonne dans le tableau des Groupes appelés "User_ID" et pour chaque groupe de l'association, j'ai une ligne qui indique le Group_ID, le Nom_groupe, et le User_ID. Cette option se sent comme il serait de créer un énorme super redondant table de base de données.
L'autre option, je pense, serait de créer un Group_ID colonne dans la table des Utilisateurs et il suffit de le remplir avec tous les groupes d'un utilisateur est associé à une sorte de tableau de texte qui devra être analysée. Le problème ici est que je veux qu'il y ait un nombre illimité de groupes, et bloquer tous d'un utilisateur à un groupe d'associations en une seule "valeur" pour chaque ligne de ma table utilisateur semble super bâclée.
Vraiment c'est une base de données SQL de logique/de la conception.
Toute aide serait d'une grande aide.
Merci!
OriginalL'auteur Alex Straffin | 2013-03-03
Vous devez vous connecter pour publier un commentaire.
Il suffit de faire une table qui concerne les utilisateurs à des groupes. Deux colonnes: l'une de stocker l'unique user_id et de l'autre le stockage de l'unique group_id.
Vous n'avez pas besoin d'une clé unique dans ce tableau, si vous faites le user_id-group_id combinaison unique. Deux colonnes sont assez.
Si je me rappelle correctement, c'est l'une des trois étapes de normalisation. Peut-être vous devrait avoir un regard sur ce à.
Le fait de la
group
table existent réellement? Legroup_id
dans leuser2group
tableau pourrait également se référer à lauser_id
dans leuser
table?OriginalL'auteur Abu Dun
Vous devez créer un crosstable.
Garder vos Utilisateurs comme il est et de créer deux tables suivantes:
C'est typique d'un n:m relation, sans données redondantes.
OriginalL'auteur Tobias
Pour relier les UTILISATEURS aux GROUPES de la table, à mon avis
Vous devez créer une troisième table appelée u_g_realationship
Structure De La Table De
Ce serait faire la mise à jour ou la suppression de relations très facile par rapport à de brouillage dans une colonne
J'espère que cela résout votre problème alex.
OriginalL'auteur Muhammad Nasir