hi!
Ich möchte mal das Prinzip der Gruppensysteme aufgreifen.
Leider weiß ich net genau wie ich die DB Struktur aufbauen sollte.
es geht darum:
Ich bin Mitglied in mehreren Gruppen, in diesen Gruppen werden Nachrichten geschrieben.
Auf einer Seite sollen mir die Nachrichten dieser Gruppen angezeigt werden, in denen ich Mitglied bin.
1. Schritt:
eine Tabelle mit den Nachrichten
ID
Author (der Nachricht)
GruppenID (die ganzen ID's der Gruppen die die Leseberechtigung haben)
die Spalte GruppenID würde ich als Textfeld machen.
warum? damit ich alle Gruppen die die Berechtigung haben, in 1 Zelle habe und damit ein einfacher abgleich möglich wäre (denke ich).
2. Schritt:
eine Tabelle mit meinen Gruppen in denen ich Mitglied bin
ID
MitgliedID
NamederGruppe
jetzt müßte ich anhand meiner MitgliedID in der Spalte MitgliedID (...WHERE MitgliedID = '$ID' ) einen Abgleich machen, ob von den ganzen Datensätzen (Zelle ID) 1 Wert IN DER 1. Tabelle mit den Nachrichten -> in der Spalte GruppenID eine ID vorhanden ist.
Beispieldatensatz:
z.B. 1. Tabelle
*ID
*Author
*GruppenID
905937 (*ID -> Index bzw. Schlüssel der Tabelle)
675(*AuthorID)
266,7443,23,446,8988,232,63,29567(*GruppenID's)
2. Tabelle -> und meine Mitgliedschaft in folgenden Gruppen
*ID
*MitgliedID
*NamederGruppe
1. Gruppe:
63 (*ID -> Index bzw. Schlüssel bzw. GruppenID meiner erstellen Gruppe)
675(*MitgliedID -> meine ID Nummer auf der Homepage)
Abteilung Buchhaltung (*NamederGruppe)
2. Gruppe:
446 (*ID -> Index bzw. Schlüssel bzw. GruppenID meiner erstellen Gruppe)
675(*MitgliedID -> meine ID Nummer auf der Homepage)
Abteilung Poststelle (*NamederGruppe)
Ich Hoffe ich konnte das einigermaßen erklären.
2. Gedanke war, statt eines Textfeldes mit allen ID's, einen Datensatz pro ID machen.
Dann würde das aber bedeuten, das ich bei 1 Nachricht und 5 Gruppen die die Nachricht erhalten sollen, 5 Datensätze habe, damit würde ich mir doch meine Tabelle bzw. Datenbank zu müllen oder?
ODER
Sollte ich 3 Tabellen machen?
1. Tabelle die Nachricht
2. Tabelle die ID der Nachricht (ID -> 2356) + die ID der Gruppen
2356 | 23
2356 | 446
2356 | 83448
Oder liege ich mit den 3 Varianten auch total falsch?
Hat jemand dann eine Idee wie so etwas funktioniert?
Bestes Beispiel bei diesen sozialen Netzwerken ist doch diese genannte Pinnwand.
da sehe ich die Nachrichten von den Gruppen in denen ich Mitglied bin (wenn der Author der Nachticht meine GruppenID als Berechtigung mit gegeben hat).
Ich möchte mal das Prinzip der Gruppensysteme aufgreifen.
Leider weiß ich net genau wie ich die DB Struktur aufbauen sollte.
es geht darum:
Ich bin Mitglied in mehreren Gruppen, in diesen Gruppen werden Nachrichten geschrieben.
Auf einer Seite sollen mir die Nachrichten dieser Gruppen angezeigt werden, in denen ich Mitglied bin.
1. Schritt:
eine Tabelle mit den Nachrichten
ID
Author (der Nachricht)
GruppenID (die ganzen ID's der Gruppen die die Leseberechtigung haben)
die Spalte GruppenID würde ich als Textfeld machen.
warum? damit ich alle Gruppen die die Berechtigung haben, in 1 Zelle habe und damit ein einfacher abgleich möglich wäre (denke ich).
2. Schritt:
eine Tabelle mit meinen Gruppen in denen ich Mitglied bin
ID
MitgliedID
NamederGruppe
jetzt müßte ich anhand meiner MitgliedID in der Spalte MitgliedID (...WHERE MitgliedID = '$ID' ) einen Abgleich machen, ob von den ganzen Datensätzen (Zelle ID) 1 Wert IN DER 1. Tabelle mit den Nachrichten -> in der Spalte GruppenID eine ID vorhanden ist.
Beispieldatensatz:
z.B. 1. Tabelle
*ID
*Author
*GruppenID
905937 (*ID -> Index bzw. Schlüssel der Tabelle)
675(*AuthorID)
266,7443,23,446,8988,232,63,29567(*GruppenID's)
2. Tabelle -> und meine Mitgliedschaft in folgenden Gruppen
*ID
*MitgliedID
*NamederGruppe
1. Gruppe:
63 (*ID -> Index bzw. Schlüssel bzw. GruppenID meiner erstellen Gruppe)
675(*MitgliedID -> meine ID Nummer auf der Homepage)
Abteilung Buchhaltung (*NamederGruppe)
2. Gruppe:
446 (*ID -> Index bzw. Schlüssel bzw. GruppenID meiner erstellen Gruppe)
675(*MitgliedID -> meine ID Nummer auf der Homepage)
Abteilung Poststelle (*NamederGruppe)
Ich Hoffe ich konnte das einigermaßen erklären.
2. Gedanke war, statt eines Textfeldes mit allen ID's, einen Datensatz pro ID machen.
Dann würde das aber bedeuten, das ich bei 1 Nachricht und 5 Gruppen die die Nachricht erhalten sollen, 5 Datensätze habe, damit würde ich mir doch meine Tabelle bzw. Datenbank zu müllen oder?
ODER
Sollte ich 3 Tabellen machen?
1. Tabelle die Nachricht
2. Tabelle die ID der Nachricht (ID -> 2356) + die ID der Gruppen
2356 | 23
2356 | 446
2356 | 83448
Oder liege ich mit den 3 Varianten auch total falsch?
Hat jemand dann eine Idee wie so etwas funktioniert?
Bestes Beispiel bei diesen sozialen Netzwerken ist doch diese genannte Pinnwand.
da sehe ich die Nachrichten von den Gruppen in denen ich Mitglied bin (wenn der Author der Nachticht meine GruppenID als Berechtigung mit gegeben hat).
Kommentar