Seite 1 von 1

tabelle frontendgroupmembers zweiter index

Verfasst: Mi 3. Mai 2006, 13:47
von knb
Die Tabelle frontendgroupmembers ist meines Erachtens eine simple Verknüpfungstabelle die existiert um folgenden Sachverhalt abzubilden:

"Ein Frontenduser kann Mitglied in mehreren Frontendgroups sein, und eine Frontendgroup kann (selbstverständlich) viele Frontenduser enthalten."

So wie FE-groupmembers derzeit aber implementiert ist, lässt das Tabellendesign auch folgende Regel zu:

"Ein FE-User kann beliebig oft Mitglied der gleichen FE-Group sein"
- was nicht viel Sinn hat.

Das liegt an der Implementierung der Tabelle mit dem anonymen Primärschlüssel idfrontendgroupmember,
einer int-Spalte deren zuletzt vergebener Wert in con_sequence gespeichert wird:

Code: Alles auswählen

CREATE TABLE con_frontendgroupmembers (
  idfrontendgroupmember int(10) NOT NULL default '0',
  idfrontendgroup int(10) NOT NULL default '0',
  idfrontenduser int(10) NOT NULL default '0',
  PRIMARY KEY  (idfrontendgroupmember)
)
Vorschlag zur Verbesserung des Designs: noch einen zweiten Index hinzufügen der verhindert dass ein User immer wieder der gleichen Gruppe hinzugefügt wird:

Code: Alles auswählen

CREATE TABLE con_frontendgroupmembers (
  idfrontendgroupmember int(10) NOT NULL default '0',
  idfrontendgroup int(10) NOT NULL default '0',
  idfrontenduser int(10) NOT NULL default '0',
  PRIMARY KEY  (idfrontendgroupmember),
  UNIQUE KEY ix_feg_feu (idfrontendgroup,idfrontenduser) --- ZUSAETZLICHER INDEX
)
Gibt es irgendwas das dagegen spricht?

Verfasst: Mi 3. Mai 2006, 15:21
von HerrB
Nein. Es bringt aber nicht sooo viel, da - zumindest unter Verwendung der entsprechenden Klassen - dieser Fall in der class.frontend.groups.php verhindert wird.

Gruß
HerrB

Verfasst: Mi 3. Mai 2006, 16:01
von knb
Ich habe direkt auf die frontend*- Tabellen zugegriffen, und ca 1500 user importiert die ca 30 Gruppen z.T. mehrfach zugeordnet werden.

Ich muss feststellen, contenido operiert dann am limit - jedenfalls was das Backend / Frontenduserverwaltung angeht. Zum Beispiel, das Laden der Webseite (Frontend-) "Gruppe bearbeiten" : die Anzeige der vielen Users in den Listenfeldern kann ganz schön lange dauern. Ist möglw. reif für ein Feature Request ... Mal sehen.

Verfasst: Mi 3. Mai 2006, 16:09
von HerrB
Brauchst Du nicht stellen. Ist bekannt.

Gruß
HerrB