Announcement

Collapse
No announcement yet.

extrem komplexe Datenbank nötig - 1:n oder n:m ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • extrem komplexe Datenbank nötig - 1:n oder n:m ?

    Hallo liebe Community,

    ich bin dabei eine komplett neue Webseite mit PHP und MySQL zu schreiben.
    Dabei habe ich momentan 2 Datenbanken, eine für das Login und die User und eine weitere für die eingetragenen Objekte.
    Diese Objekte haben bestimmte Eigenschaften.

    Zum Beispiel ein Objekt, welches mehrere Farben haben kann. Die Anzahl der Farben, die das Objekt haben kann muss aber variabel sein. Da mehrere Objekte eine oder mehrere Farben gleich haben können, wollte ich die Farben auslagern in eine weitere Tabelle.
    Wie stelle ich es aber nun an?
    Wenn ich in die Objekte Tabelle ein Feld "FarbeID" einfüge, kann ich aus der Tabelle "Farbe" ja jeweils nur eine Farbe zuordnen oder?
    Die Farben müssen unbedingt in eine weitere Tabelle, da diese neben einer eigenen ID auch weitere Attribute haben.

    Momentan benutze ich MySQL 5.5.28 und InnoDB (Letzteres kann ich noch ändern).

    Ich würde mich sehr sehr freuen, wenn mir jemand weiterhilft.
    (Eventuell dann auch die geeignete Abfrage für PHP, aber zuerst würde mir die Datenbankstruktur reichen.)

  • #2
    Originally posted by Ashley View Post
    Hallo liebe Community,

    ich bin dabei eine komplett neue Webseite mit PHP und MySQL zu schreiben.
    Dabei habe ich momentan 2 Datenbanken, eine für das Login und die User und eine weitere für die eingetragenen Objekte.
    Diese Objekte haben bestimmte Eigenschaften.

    Zum Beispiel ein Objekt, welches mehrere Farben haben kann. Die Anzahl der Farben, die das Objekt haben kann muss aber variabel sein. Da mehrere Objekte eine oder mehrere Farben gleich haben können, wollte ich die Farben auslagern in eine weitere Tabelle.
    Wie stelle ich es aber nun an?
    Wenn ich in die Objekte Tabelle ein Feld "FarbeID" einfüge, kann ich aus der Tabelle "Farbe" ja jeweils nur eine Farbe zuordnen oder?
    Die Farben müssen unbedingt in eine weitere Tabelle, da diese neben einer eigenen ID auch weitere Attribute haben.
    Eine weitere Tabelle mit 2 Spalten: Fremdschlüssel auf Objekt und Fremdschlüssel auf Farbe.

    Momentan benutze ich MySQL 5.5.28 und InnoDB (Letzteres kann ich noch ändern).
    *seufz*

    Andreas

    Comment


    • #3
      Originally posted by akretschmer View Post
      Eine weitere Tabelle mit 2 Spalten: Fremdschlüssel auf Objekt und Fremdschlüssel auf Farbe.
      *seufz*
      Danke für die Antwort!
      warum seufz?

      Comment


      • #4
        Originally posted by Ashley View Post
        Danke für die Antwort!
        warum seufz?
        Weil sich "extrem komplexe Datenbank nötig" und MySQL nicht so gut vertragen. Aber für das, was Du machen willst, reicht es vermutlich...

        Comment


        • #5


          Ich nenn diese Objekze immer Artikel -> und die können noch mehr varianten haben

          Comment


          • #6
            Wenn Du relativ viele Artikel und Verbindungen zu Farben hast würde es sich vielleicht lohnen die Daten denormalisiert zu speichern. D.h. zum Beispiel in einem Feld kommasepariert alle IDs zu den Farben zu speichern. Das Zusammenführen mit den Farben kann man auch im Programm machen. Hier kommt es allerdings auf den Anwendungsfall an. Ausserdem kann man so etwas später auch noch einführen.

            Ausserdem liegt "komplex" immer im Auge des Betrachters n:m relationen finde ich generell nicht sehr komplex und sind wohl eher standard.

            Comment

            Working...
            X