berdn: Mehere DB-Felder oder ein Array

Hallo Forum,

ich will für unser CMS die navigation über eine mySQL Datenbank verwalten. Jeder Link kann diverse Eigenschaften haben.
Nu könnte ich für jede Eigenschaft ein DB-Feld erstellen ?!
Das erscheint mir aber nicht sinnvoll, oder ?

Meine Idee wäre ein DB-Feld z.b. Navigation in der ich einen Array z.B.

$myNavigation = array(
 'myLink1' => array('Name'=>'Name in der Navigation','URL' =>'url','Title' =>'Rollover','Target' =>'_self','CSS' =>'class');
 'myLink2' => array('Name'=>'Name in der Navigation','URL' =>'url','Title' =>'Rollover','Target' =>'_self','CSS' =>'class');
);

Für eine Entscheidungshlfe dankbar,

Bernd

  1. hi,

    Jeder Link kann diverse Eigenschaften haben.
    Nu könnte ich für jede Eigenschaft ein DB-Feld erstellen ?!
    Das erscheint mir aber nicht sinnvoll, oder ?

    wieso nicht?

    Meine Idee wäre ein DB-Feld z.b. Navigation in der ich einen Array z.B.

    $myNavigation = array(
     'myLink1' => array('Name'=>'Name in der Navigation','URL' =>'url','Title' =>'Rollover','Target' =>'_self','CSS' =>'class');

    name, URL, title und target sind individuelle eigenschaften eines links - wieso sollten die _nicht_ in jeweils einer spalte abgelegt werden?

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Hello,

    ich will für unser CMS die navigation über eine mySQL Datenbank verwalten. Jeder Link kann diverse Eigenschaften haben.
    Nu könnte ich für jede Eigenschaft ein DB-Feld erstellen ?!
    Das erscheint mir aber nicht sinnvoll, oder ?

    Da hast Du Recht.
    Besser ist es, für jede Eigenschaft einen datensatz in einer zusätzlichen Tabelle zu erstellen.
    Da MySQL in der Lage ist, eine Normalisierungsstufe selbsttätig aufzulösen (Type Text, VarChar, ENUM, SET, usw.) kannst Du eine Tabelle mit Klassifizierungsschlüssel aufbauen

    T_LINK

    ID_LINK
     -------

    T_PROPERTY

    ID_PROPERTY
     ID_LINK
     ID_POPERTY_TYPE
     PROPERTY_VALUE

    Und richtig wäre es sicher, in einer dritten Tabelle die PROTERTY_TYPEs zu deklarieren, ihre CheckFunktionen zu definierern, Ihre Darstellungsfunktion, etc.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau