php+mysql: brauche hilfe bei datenbankerstellung



  • hallo zusammen,

    ich habe den auftrag bekommen eine datenbank zu erstellen. leider habe ich soetwas noch nie gemacht...

    ich glaube es passt eher hier als im webzeugs forum, auch wenn es in php mit mysql realisiert werden soll..

    es sollen kundendaten gemanaged werden. ich habe folgende daten für einen kunden abzulegen

    firma1        firma2
    branche-1      branche-2
    name-1         name-2
    vorname-1      vorname-2
    titel-1        titel-2
    funktion-1     funktion-2
    tel-gesch.-1   tel-gesch.-2
    fax-1          fax-2
    email-1        email-2
    
    plz
    ort
    str+nr
    homepage
    
    besuchstermin      besuchstermin-2      besuchstermin-3
    ergebnistermin     ergebnistermin-2
    

    wie würdet ihr da rangehen? macht es sinn das ganze in eine tabelle zu packen und dann einfach die abfragen so stricken das die ausgabe die gewünscht ist angezeigt wird?
    bspl: es sollen alle alle adressen der kunden ausgegeben werden, bei denen wir in einem bestimmten zeitraum einen besuchstermin hatten.

    ist es ratsam bei solchen ansprüchen besser getrennte tabellen zu machen und diese mit einem schlüssel zu verknüpfen?

    es wäre nett wenn mir jemand da ein paar tipps geben könnte..
    vielen dank!

    chris



  • Original erstellt von <christian>:
    ich glaube es passt eher hier als im webzeugs forum, auch wenn es in php mit mysql realisiert werden soll..

    ich wollte es zuerst im "programmieren allgemein" forum posten, hab mich dann aber doch umentschlossen.. durch copy+paste hab ich vergessen den satz rauszunehmen .. 😉



  • mach eine table mit den attributen die du brauchst. (als primary key würd ich namen nehmen)
    da speicherst den ganzen mist rein. und dann lässt ihn dir halt ausspucken mit SELECT * FROM dein_teble WHERE name="huber" AND besuch<12.2.00 oder so
    kein grosses ding! nur die oberfläche zu machen, könnte eklig sein



  • hi Korbinian,

    Original erstellt von Korbinian:
    (als primary key würd ich namen nehmen)

    hmm, ist es nicht sinnvoller jedem kunden eine fortlaufende id zu geben?

    Original erstellt von Korbinian:
    ..und dann lässt ihn dir halt ausspucken mit SELECT * FROM dein_teble WHERE name="huber" AND besuch<12.2.00 oder so
    kein grosses ding!

    ahh 😉 an soetwas hatte ich gedacht, nur wusste ich nicht ob es geht und ob es sinn macht von der perfomance her.. danke 😉

    Original erstellt von Korbinian:
    ..nur die oberfläche zu machen, könnte eklig sein

    wieso glaubst du das? wo könnte denn da eine schwierigkeit liegen?
    wenn ich es mir recht überlege, kann ich es mir sogar vostellen.. es soll ja in wenigen mausklicks (wenn zb. ein kunde am tel ist) wichtige informationen gesucht werden. dh. es muss eine übersicht aller kunden da sein, eine suchfunktion (volltext und jede spalte) un vielleicht noch andere angaben.. das müsste ich aber nochmal genauer absprechen..

    ok, also du meinst es ist kein problem das ich da alle attribute in eine tabelle reinhaue ?! gut, werde ich morgenfrüh dann mal starten..
    danke für die schnelle hilfe! 😉

    wenn du oder jemand anders noch einen tipp hast/hat, würde ich mich sehr freuen!
    danke und gruß
    chris



  • stimmt, an ne fortlaufende id hab ich nimmer gedacht (is ne weile her, dass ich mysql geprogt hab :))
    es ist (meines wissens) kein problem so viele spalten in ne table zu hauen. mache sowas auf nem 200er p1 und hab null probleme, die queries sind flott.
    eklig insofern, dass du was fürs datum austüfteln musst. ich glaub aber es gibt nen field-type datum. musst mal nach nem mysql tut suchen, da stehen diese tricks meistens drin.
    für mich eklig, weil ich ausserdem bei webdesign 5 linke daumen hab...



  • Original erstellt von Korbinian:
    .. es ist (meines wissens) kein problem so viele spalten in ne table zu hauen. mache sowas auf nem 200er p1 und hab null probleme, die queries sind flott.

    das hört sich doch super an.. ist auch deutlich weniger aufwand als verschiedene tabellen zu verknüpfen..

    Original erstellt von Korbinian:
    .. eklig insofern, dass du was fürs datum austüfteln musst. ich glaub aber es gibt nen field-type datum. musst mal nach nem mysql tut suchen, da stehen diese tricks meistens drin.

    jo, da werde ich mir was suchen müssen. aber wie du schon sagtest, wird es kein problem sein da was zu finden, da es massenweise tuts etc. für mysql und php gibt.

    Original erstellt von Korbinian:
    .. für mich eklig, weil ich ausserdem bei webdesign 5 linke daumen hab...

    lol, da geht es mir allerdings nicht anders.. 😃 aber es soll ja nur funktionieren und arbeit abnehmen.. nicht verkauft werden 😉

    danke nochmal und schöne grüße!
    chris



  • Man geht hier so ran.
    Die Daten, welche zusammengehören in eine Tabelle.
    Also Firma mit Adresse, u.s.w. Dieser gibst du einen Eindeutige ID.

    Kontakte der Firma haben in dieser Tabelle normalerweise nicht verloren da es ja mehrere Kontakte der Firma geben kann. Also Kontakt in einer Tabelle und ein Feld welches die Zuordnung zur Firma representiert (ID oder KundenNr. der Firma)
    Dieser Tabelle gibst du wieder eine ID.

    Dann die Termin wieder in eine Tabelle und mit der ID der Kontakte verknüpfen.

    Dadurch bleib die Konsistenz der DB erhalten.



  • hallo tom,

    Original erstellt von Unix-Tom:
    **Man geht hier so ran.
    Die Daten, welche zusammengehören in eine Tabelle.
    Also Firma mit Adresse, u.s.w. Dieser gibst du einen Eindeutige ID.

    Kontakte der Firma haben in dieser Tabelle normalerweise nicht verloren da es ja mehrere Kontakte der Firma geben kann. Also Kontakt in einer Tabelle und ein Feld welches die Zuordnung zur Firma representiert (ID oder KundenNr. der Firma)
    Dieser Tabelle gibst du wieder eine ID.

    Dann die Termin wieder in eine Tabelle und mit der ID der Kontakte verknüpfen.

    Dadurch bleib die Konsistenz der DB erhalten.**

    hmm, das leuchtet ein...

    so in etwa?
    [code]
    tabelle "kontaktperson"
    kontakt_id
    name-1 name-2
    vorname-1 vorname-2
    titel-1 titel-2
    funktion-1 funktion-2
    tel-gesch.-1 tel-gesch.-2
    fax-1 fax-2
    email-1 email-2

    tabelle "firma"
    firmen_id
    firma1 firma2
    branche-1 branche-2
    plz
    ort
    str+nr
    homepage

    tabelle "termine"
    termin_id
    besuchstermin besuchstermin-2 besuchstermin-3
    ergebnistermin ergebnistermin-2[/code]

    aber wie verknüpfe ich nun diese ganzen id's? oder ist das aufgabe der mysql-abfrage?
    oder soll ich es so halten das in jeder tabelle ein kunde die gleiche id hat?

    idee:
    wenn jetzt ein kunde kommt gebe ich ihm die id 1. mit der id 1 kann ich dann in jeder tabelle die zugehörigen daten zu diesem kunden finden..
    dem nächsten kunden gebe ich die id 2, unter der ich dann wieder in jeder tabelle die daten zu diesem kunden finde.. usw.

    ist das so richtig oder muss ich die tabellen verbinden?

    danke 😉
    chris


Anmelden zum Antworten