Die Tabellenstruktur ist denke ich selbsterklärend.
Problem hierbei:
Die Wirkstoffe können in unterschiedlichen Konzentrationen
auftreten, also mal 12% mal 37% oder was weiß ich in welcher Konzentration.
Wie geht man da am Besten vor?
Für jeden Wirkstoff und %-Satz einen eigenen Eintrag in der Tabelle Wirkstoff?
BeitragMelegrian » 24.06.2015, 14:00 Frage zur Tabellenstruktur in mysql
Tabelle: Wirkstoff
id | name | konzentrationen
------------------
01 | FloraFix_1000 | 0.06
Where mit > oder einen anderen entsprechenden Operator. Brauchst doch nicht für alles einen neuen Datensatz anlegen, wenn sich nur die Prozente unterscheiden, es sei denn da unterscheidet sich noch mehr, wie der Preis oder so. Oder es gibt zu viele Varianten.
BeitragMelegrian » 24.06.2015, 14:16 Frage zur Tabellenstruktur in mysql
So richtig durchdacht war das auch noch nicht von mir. Kommst vielleicht besser weg mit einer Tabelle nur für Prozente und dann die Tabellen und Abfrage damit verknüpfen?
Dann brauchte das Produkt nur einmal aufgeführt werden und bei der Abfrage wird nachgeschaut, ob in der gewünschten Konzentration vorhanden.
Irgendwie gefällt mir das so oder so nicht. Ich meine gibt es da für jedes Mittel in 100 Abstufungen?
Beitragelmex » 24.06.2015, 14:40 Frage zur Tabellenstruktur in mysql
Tja, die liebe Normalisierung
Oder anders gesagt, was dem Datenbankdesigner seine Freud ist dem Applikationsprogrammierer sein Leid
Ich frage da immer zuerst, was passiert öfter, Anpassungen der Werte in der Datenbank oder Abfragen aus den Datenbanken und versuche dann den passenden Kompromiss zwischen Normalisierung und Performance zu bilden.
Wenn man unbedingt beides geniessen muss, dann gibt es ja noch die Views.
PS. Letzte Antwort - so würde ich es auch aufbauen. Außer bei vielen Abfragen, dann doch lieber die Joins vermeiden und chronologisch oder nach Änderungen Views erzeugen.
Beitragxoni » 24.06.2015, 14:53 Frage zur Tabellenstruktur in mysql
Tja, die liebe Normalisierung
ehe, ja da bin ich schon ein paar Mal drüber
gestolpert. Toll ist es, wenn typische n:m Beziehungen
als VARCHAR Kommasepariert in einem Feld
abgelegt werden....
Beitragelmex » 24.06.2015, 16:12 Frage zur Tabellenstruktur in mysql
Diese VARCHAR Felder kenne ich auch
Aber so joins haben auch ihre Tücken, schlechte Indizies auf den Tabellen, viele Einträge und bisschen Traffick, schon raucht mal schnell die Datenbank.
Ist krass, was man da in der Praxis manchmal an "lebendigen" Systemen vorfindet.
Das Gegenteil von den erwähnten Kommalisten im Varchar sind so kaputt normierte Daten, dass man über ein dutzen Tabellen joinen muss oder die Subqueries mehrfach verschachteln darf. Da will man dann plötzlich bei 10 gleichzeitigen Nutzern auf der Datenbank einen Loadbalancer