Naps: Wie am besten speichern

Hi,

was ist eurer Meinung nach besser:

DB User
--------

UserID | berechtigungen|
-------------------------
  xxx  |  1,2,3

ODER

UserID | berechtigung|
-------------------------
  xxx  |  1
  xxx  |  2
  xxx  |  3

MfG Naps

  1. was ist eurer Meinung nach besser:

    letzteres. Das macht eine Datenbank aus.
    Mit selbsterstellten komma-separierten Listen in Datenbankfeldern zu arbeiten handelt einem in den meisten Fällen mehr Ärger ein. Eine Suche nach allen Usern mit Berechtigung 3 erfordert eine Volltextsuche, die nicht so trivial ist. Suche nach "%,3,%" geht nicht, weil die 3 am Ende stehen kann. Volltextsuchen sind langsam.

    Siehe auch http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

    1. Tach!

      Mit selbsterstellten komma-separierten Listen in Datenbankfeldern zu arbeiten handelt einem in den meisten Fällen mehr Ärger ein. Eine Suche nach allen Usern mit Berechtigung 3 erfordert eine Volltextsuche, die nicht so trivial ist. Suche nach "%,3,%" geht nicht, weil die 3 am Ende stehen kann. Volltextsuchen sind langsam.

      Dafür kennt MySQL FIND_IN_SET(). Eine Suche komplett über alle Datensätze braucht das DBMS dabei jedoch auch. Bei geringem Datenbestand hat das zwar keine spürbaren Auswirkungen. Man macht sich aber durch diese Vereinfachung an anderen Stellen das Leben schwer, weil man die Relationsfähigkeit des DBMS bei komplexen Abfragen nicht richtig nutzen kann. Einfacher ausgedrückt: Daten lassen sich besser miteinander in Beziehung setzen (verknüpfen/joinen), wenn sie in eigenen Zeilen stehen.

      dedlfix.

  2. Hi Naps,

    erst vor wenigen Tagen stand ich vor einer ähnlichen Frage und bin dank dedlfix zu einer guten Lösung gekommen.

    Vielleicht hilft es Dir, wenn Du Dir den entsprechenden Thread einfach mal ansiehst.

    Mit freundlichen Grüßen

    Hugo Egeon Balder