Neue Datenbank: Welche Relationen brauche ich?

Der Druide

Aktives Mitglied
Thread Starter
Dabei seit
12.01.2004
Beiträge
127
Reaktionspunkte
0
Moin,

ich bin gerade dabei meine erste Datenbank in Mysql zu entwerfen. Allerdings merke ich gerade, dass das arbeiten mit Datenbanken wohl einfacher ist, als ebensolche zu entwerfen:(
Folgender Sachverhalt: Ich soll eine Datenbank entwerfen in der wir unsere Medikamente und Verbandsmaterialien einpflegen können. Hauptsächlich geht es hierbei darum, dass wir endlich einmal eine Übersicht brauchen, welche Materialien wann ablaufen. Dies soll dann später per PHP einmal im Monat an unseren Cheffe geschickt werden, damit der nachbestellen kann.

Wichtig wären folgende Eigenschaften:
  • Name
  • Verpackungsgröße
  • Lagerungsort
  • Anzahl
  • Haltbarkeit
  • Hinzugefügt

Die Ursache meiner Verwirrtheit ist bislang die Tatsache, dass wir natürlich auch von ein und demselbem Produkt mehrere Verpackungsgrößen an verschiedenen Orten auf Lager haben. Eigentlich kein sehr großes Problem, aber da es erst meine Datenbank ist, weiß ich gerade nicht ganz wie viele Tabellen jetzt sinnvoll sind und welche Relationen zwischen ihnen herrschen müssen.

Meine bisherigen Überlegungen gingen in die Richtung, dass ich in eine erste Tabelle die Datensätze ID und Name setze und eine zweite Tabelle die Datensätze Ort, Verpackungsgröße, Anzahl, Haltbarkeit und Hinzufügt setze. Macht diese Aufteilung Sinn oder sollte man das ganze lieber auf drei Tabellen ausbauen?

Ich wäre über Vorschläge und Tipps sehr erfreut.
Grüße.
 
Hauptsächlich geht es hierbei darum, dass wir endlich einmal eine Übersicht brauchen, welche Materialien wann ablaufen. Dies soll dann später per PHP einmal im Monat an unseren Cheffe geschickt werden, damit der nachbestellen kann.
Wozu das per PHP und mysql machen?
Wenn ihr nicht gerade 10.000 Medikamente im Angebot habt, ist das absolut überdimensioniert.
FileMaker oder Bento sollten hierfür die perfekten Kandidaten sein
 
Deine idee ist schon gut. Aus dem Bauch raus, würde ich den ort noch in eine eigene tabelle legen.

Produkt
---------
produkt_id (int, pkey)
produkt_name (string)

Lagerung
----------
lagerung_id (int, pkey)
produkt_id (int, foreign-key)
ort_id (int, foreign-key)
verpackungsgroesse (string)
anzahl (int)
halbbarkeit (date)
hinzugefuegt (date)

Ort
----
ort_id (int, pkey)
ort_name (string)
 
Wenn's nicht gerade hyperdringend ist, dann würde ich dir empfehlen dich erst einmal etwas grundlegend in Datenbank-Design einzuarbeiten (Stichworte wie Normalisierung und ähnliches).

z.B. hiermit:
http://www.amazon.de/Datenbanksyste...TF8&coliid=I2CHNYE1BFYHGU&colid=36FHL0IQ1OKFF

Das wird dich auf den ersten Blick zwar vielleicht fast erschlagen, aber danach ist vieles klarer.
Nein super dringend ist es im Moment gerade nicht. Ich habe mich bislang ein bisschen einglesen in das Thema mit Hilfe der Skripte vom regionalen Rechentrum für Niedersachsen - Heft "SQL Grundlagen und Datenbankdesign". Allerdings muss ich leider zugeben, dass ich Schwierigkeiten damit habe die dortigen Beispiele auf mein Problem zu übertragen. Aber ich werde mir dein Buch mal näher ansehen.

Wozu das per PHP und mysql machen?
Wenn ihr nicht gerade 10.000 Medikamente im Angebot habt, ist das absolut überdimensioniert.
FileMaker oder Bento sollten hierfür die perfekten Kandidaten sein
Die Entscheidung für Mysql kam von mir. An Filemaker und Bento habe ich bereits gedacht, allerdings bin ich der einzige in unserer Einheit der mit Macs arbeitet. Ich wollte daher eine möglichst systemunabhängige Lösung finden. Zudem fehlt es uns hier einfach am nötigen Kapital für diese Programme.
 
Deine idee ist schon gut. Aus dem Bauch raus, würde ich den ort noch in eine eigene tabelle legen.

Produkt
---------
produkt_id (int, pkey)
produkt_name (string)

Lagerung
----------
lagerung_id (int, pkey)
produkt_id (int, foreign-key)
ort_id (int, foreign-key)
verpackungsgroesse (string)
anzahl (int)
halbbarkeit (date)
hinzugefuegt (date)

Ort
----
ort_id (int, pkey)
ort_name (string)

Ich würde den Hersteller noch als Dimension einbinden, ebenso die Verpackungsgröße, da die ja nach diesen 3 Größen genormt sind. Dazu dann noch die tatsächliche Stückzahl.

hinzugefuegt würde ich ergänzen durch den User, der es hinzugefügt hat. Diese automatisch durch ein Constraint setzen lassen.
 
Die Entscheidung für Mysql kam von mir. An Filemaker und Bento habe ich bereits gedacht, allerdings bin ich der einzige in unserer Einheit der mit Macs arbeitet. Ich wollte daher eine möglichst systemunabhängige Lösung finden. Zudem fehlt es uns hier einfach am nötigen Kapital für diese Programme.
Wie wäre es mit Excel? Läuft auf beiden Plattformen und ist mit den ganzen Wenn-Dann Funktionen massiv mächtig.

Ganz im Ernst: Euch fehlen 50 Euro für Software aber Du willst Dich jetzt wochenlang hinsetzen und was "basteln", was - nicht persönlich nehmen - wahrscheinlich nichtmal funktionieren wird? Arbeitest Du kostenlos? Falls ja, mein Hof müsste mal wieder mit nem Hochdruckreiniger gereinigt werden :D

Ich halte Dich nicht auf, aber bedenke: selbst wenn Du das Wissen hättest, wäre die Lösung totaler Overkill
 
Da hast du mit Sicherheit in vielen Dingen Recht Hausbesetzer. Die Sache ist halt nur einfach die, dass mich das Thema Datenbanken interessiert und ich mich gerne mal ein bisschen reinarbeiten möchte.
Meinem Cheffe ist das mit Sicherheit vollkommen egal, ob ich das Teil nun mit Exel mache oder mit sonst was. Hauptsache, es wird überhaupt mal irgendwas in diese Richtung unternommen. Und eigentlich fand ich dieses kleine Projekt hätte genau die richtige Größe um mich langsam mit dem Thema vertraut zu machen. Ich habe einfach nach dem Grundsatz gedacht: Arbeite lieber am Anfang ein bisschen mehr und du hast die nächsten Jahre Ruhe.

Übrigens: Wir sind eine kommunale Einrichtung, uns fehlt es immer an Geld. :(
 
An Filemaker und Bento habe ich bereits gedacht, allerdings bin ich der einzige in unserer Einheit der mit Macs arbeitet. Ich wollte daher eine möglichst systemunabhängige Lösung finden. Zudem fehlt es uns hier einfach am nötigen Kapital für diese Programme.

Nur als Hinweis am Rande:
FileMaker arbeitet sowohl auf Mac wie auch auf Windows (und iOS). Und kann auch über's Web genutzt werden. Das sollte also kein Ausschlusskriterium sein.

Ebenso würde ich als Non-Profit Organisation immer zuerst mal nachfragen, wie hoch die Preise wirklich wären...

http://www.filemaker.de/purchase/store/licensing.html
http://www.filemaker.de/offer/fm11_avla/

:)
 
Die Sache ist halt nur einfach die, dass mich das Thema Datenbanken interessiert und ich mich gerne mal ein bisschen reinarbeiten möchte.
Bento, FileMaker, Access, Excel (bedingt) funktionieren nach dem gleichen Datenbankprinzip wie MySQL (Tabellen etc), dh Du lernst genau so viel über Datenbanken - nur für den Anfang viel viel viel ... viel einfacher zu verstehen.
Hoffe Du denkst nicht, das seien "klickibunti" Anwendungen. Gerade mit FileMaker werden teilweise riesige Datenbanken verwaltet.

Der einzige Vorteil von PHP und MySQL liegt darin, dass Du weltweit zig Dutzende Benutzer mit dem System arbeiten lassen kannst. Hast Du die Anforderung nicht, hast Du ausschließlich Nachteile.
 
Filemaker geht auch über das Internet? Hups, ist mir gar nicht aufgefallen bei meiner kleinen Recherche. Wenn man dann sogar noch in das Internet ein passwort geschütztes Formular zur Dateneingabe stellen könnte, wäre Filemaker sofort wieder in meiner Auswahlliste.

@Hausbesetzer
Nein, Klickibunti Anwendungen habe ich mir darunter nicht vorstellt. Eher im Gegenteil. Es dreht sich bei meinem kleinen Projekt nicht um riesige Datensätze. Eher 150-200 für den Anfang.
Langfristig - also im Verlauf der nächsten ein, zwei Jahre - wollte ich mich an ein kleines Intranet wagen. Also eine Ausbildungsdatenbank, Dienstpläne, interne Kommunikationsmöglichkeit der Mitglieder usw, welche per Internet Passwort geschützt zu erreichen sein sollen. Daher kam mein Gedanke hauptsächlich auf MySQL, da es sich hierbei ja doch eher um Internetbasierende Dienste handelt.
 
FileMaker übers Web nutzen heißt aber auch, dass auf einem Server mit Zugriffsmöglichkeit aus dem Web FileMaker laufen muss.
 
wenn genügend Zeit da ist spricht doch nichst gegen den Lerneffekt. Zumal mit einem solchen System später mal wesentlich mehr erledigt werden kann als mit einem als DB mißbrauchten Excel-Sheet! Meist kommen zu solchen Aufgaben ja noch welche dazu, während man an der Lösung arbeitet. Mit einem LAMP oder MAMP-System hat man jedenfalls ein einigermaßen schnell erlernbares System an der Hand mit dem sich viele Aufgaben lösen lassen.
 
No way - Bei Excel zusammen mit VBA kannst Du unglaubliche Dinge basteln.

ok, deswegen schrieb ich ja mißbraucht! Ein Multiuser-taugliches web-basiertes Info-System ist IMHO denn doch noch etwas anderes als eine Exceltabelle der man dann noch das Mailen oder sonstiges beibringt und die eben nur von einem User schreibend geöffnet sein kann!
 
Ja gut, in der Dimension hast Du Recht.
Aber mal ehrlich: Diese Dimension wird der TE nichtmal annähernd erreichen.
Von daher bleibe ich bei: Overkill.
 
FileMaker übers Web nutzen heißt aber auch, dass auf einem Server mit Zugriffsmöglichkeit aus dem Web FileMaker laufen muss.

Das ist korrekt, aber kein Problem. Wenn man sowieso über das Web Interface darauf zugreift, kann man alle unnötigen Ports ja gegen aussen schliessen.
 
Mal eben schnell angedacht.

Viele Grüße
Andreas
 

Anhänge

  • erm.jpg
    erm.jpg
    68,3 KB · Aufrufe: 150
Zurück
Oben Unten