Cheatah: Datenhaltung - Datenbankstruktur

Beitrag lesen

Hi,

Artikel
+- id

diese Tabelle ist sinnfrei. Es reicht diese:

Angaben_zu_Artikel

Ansonsten sieht es auf den ersten Blick gut aus.

So komme ich sehr schnell an sehr viele Datensätze! [...] aber trotzdem, sehr wohl ist mir dabe nicht!

Das ist kein Problem, mach Dir darüber keine Sorgen.

Ob Du jetzt im einzelnen (insb. zwischen Artikel und Angaben) 1:n- oder n:m-Beziehungen baust, hängt von der daraus resultierenden Redundanz ab.
Verstehe ich nicht. ich habe jeweils 1:n beziehungen, und in der Angaben-Tabelle 1:m - Beziehungen, oder?

Eine n:m-Beziehung hast Du über Verknüpfungstabellen wie z.B. Kunden_zu_Event oder Artikel_zu_Event.

Und - was bedeutet hier Redundanz? Ich kennen nur redundante Serveranbindungen(was IMHO heißt das der Server über mehr als 1 Leitung angebunden ist)?!

Redundanz bedeutet (kurz gesagt), dass etwas mehrfach vorhanden ist. Das relationale Datenbankmodell dient dazu, Redundanz zu eliminieren - indem eben als Beispiel nicht die Angaben zum Kunden mit jedem einzelnen Artikel mitgeführt werden, hundert mal bei hundert Artikeln dieses Kunden.

Was ist dann mit Performance,
Die hängt von mehr Faktoren ab - besonders auch Indizes und Statements - ab. Das DB-Layout muss _insgesamt_ stimmig sein.
Das wäre das DB-Layout, ist das stimmig?

Soweit ich es sehe, ja.

Daten-Konsistenz...
Die ist bei MySQL grundsätzlich ein Problem, da Foreign Keys (bisher) nicht unterstützt werden.
Kann ich nicht manuell in jede Tabelle entsprechende Spalten mit den verknüpften Ids wür andere Tabellen einfügen?

Du kannst nicht nur, Du musst. Vor allem kannst Du aber in Kunden_zu_Event auf Event_id=42 referenzieren, auch wenn ein solcher Datensatz in Event nicht existiert. Um dies zu vermeiden, sind Foreign Keys da - leider (noch) nicht bei MySQL.

Es gibt insert-select, mal gucken ob das was bringt!

Eine Art
INSERT INTO tabelle VALUES (1,2,3), (4,5,6), (7,8,9), ...
wäre hilfreicher. Für einen Select brauchst Du die Daten ja schon in der DB, und Du willst sie ja gerade erst hineinschreiben.

Cheatah