Wie erstellen Sie Benutzer - /Gruppen-Vereine in MySQL
Arbeite ich an einer webapp in PHP/MySQL und ich komme zu dem Punkt, wo ich brauche zum erstellen einer Benutzer - /Gruppen-Verband.
Hier ist, was bin ich für ein shooting:
-
Ich bin dabei, eine stetig wachsende Anzahl von Gruppen und Benutzern.
-
Die Benutzer werden in der Lage sein zu ändern, Ihre Gruppe Verbänden
Wann immer Sie wollen. -
Die Gruppe Verband wird diktieren, die Priorität der Inhalte
die auf der Website angezeigt. -
E-Mail-updates Benutzer geschickt werden, werden bestimmt von Ihrer aktuellen Gruppe
Verbände.
Meine Frage ist, was ist die beste Art das zu handhaben, Benutzer - /Gruppen-Verband?
Meine aktuellen Tabelle Struktur sieht wie folgt aus (Vereinfacht für Leichtigkeit der Kommunikation):
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.
Meine ersten Gedanken sind, erstellen Sie eine Gruppen-Tabelle mit Group_ID, Group_name Spalten. Dann könnte ich eines von zwei Dingen tun:
Konnte ich erstellen Sie eine Spalte, in der Gruppen-Tabelle namens "User_ID" und für jede Gruppe Verein habe ich eine Zeile, die besagt die Group_ID, Group_name, und die User_ID. Diese option fühlt sich an wie es würde eine riesige super-redundanten Datenbank-Tabelle.
Die andere option die ich mir vorstellen könnte wäre eine Group_ID Spalte in der Users-Tabelle und füllen Sie es mit allen Gruppen, denen der Benutzer zugeordnet ist, in eine Art von array von text, das müsste analysiert werden. Das Problem hier ist, dass ich will, es zu werden einer unbegrenzten Anzahl von Gruppen, und ein Verklemmen alle user der Gruppe die Verbände zu einem "Wert" für jede Zeile in meiner Tabelle user scheint super schlampig.
Wirklich das ist eine SQL-Datenbank-Logik - /design-Frage.
Jede Unterstützung wäre eine große Hilfe.
Dank!
InformationsquelleAutor Alex Straffin | 2013-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur eine Tabelle, die sich die Nutzer zu Gruppen. Zwei Spalten: eine Speicherung der eindeutigen Benutzerkennung und der andere die Speicherung der einzigartigen group_id.
Ihnen brauchen nicht einen eindeutigen Schlüssel in dieser Tabelle, wenn Sie die user_id-group_id Kombination einzigartig. Zwei Spalten sind genug.
Wenn ich erinnere mich richtig, dies ist einer der drei Schritte von Normalisierung. Vielleicht haben Sie shuld haben Sie einen Blick auf diese zu.
So funktioniert die
group
Tabelle tatsächlich vorhanden ist? Diegroup_id
imuser2group
Tabelle könnte auch verweisen Sie auf dieuser_id
imuser
Tabelle?InformationsquelleAutor Abu Dun
Erstellen Sie eine crosstable.
Halten Sie Ihre Anwender, wie es ist, und erstellen Sie folgende zwei Tabellen:
Dies ist eine typische n:m-Beziehung, ohne redundante Daten.
InformationsquelleAutor Tobias
Link der BENUTZER zu den GRUPPEN, die Tabelle meiner Meinung nach
Müsste man erstellen Sie eine Dritte Tabelle namens u_g_realationship
Tabelle Struktur
Dies würde die Aktualisierung oder das löschen der Beziehungen sehr leicht im Vergleich zum einklemmen in einer Spalte
Ich hoffe das löst dein problem alex.
InformationsquelleAutor Muhammad Nasir