Datenbank Aufbau

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenbank Aufbau

    hi,

    also ich habe mal ein Bild aus dem DBDesigner von meiner jetztigen Datenbankstruktur gemacht. Ich hab, wie zu sehen, eine Haupttabelle "Kunde" die alle Primärschlüssel der anderen Tabellen enthält. Ist der aufbau ansich so korrekt oder gibt es grobe Fehler. Ich mache solch eine DB nciht alzu häufig und wäre sehr dankbar, wenn ihr mir ein wenig helfen könntet.

    Vielen Dank

    joe
    Angehängte Dateien
    Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
    aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

  • #2
    1. etwas mehr normalisieren wäre besser, d.h. tabelle "inhaber" soll eine spalte "id" bekommen, über die man aus der tabelle "kunde" (statt ih_name) an die daten des inhabers drankommt. das gilt für alle tabellen, z.b. kt_nr (das programm kann übrigens die verknüprfungen bestimmt auch darstellen).

    2. 50 zeichen können schnell knapp werden.

    3. was sind "konditionen"?

    4. tel, fax und "kd_seit" sind keine integer!

    Kommentar


    • #3
      wieso sind den tel,fax,kunde seit keine integer?
      hmmmm.... ich versteh nicht ganz wie du das meinst....
      also als ID würde ich jetzt einfach mal spontan eine running number nehmen zB. aber ich komme doch eigentlich optimal an die daten des inhabers. bei jeder abfrage frage ich nach der gleichheit des namens und hole mir die daten. was würde den eine ID bringen. bzw an was für eine ID hast du gedacht?
      vielen dank für die hilfe
      Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
      aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

      Kommentar


      • #4
        wieso sind den tel,fax,kunde seit keine integer?
        warum ist denn 0309999999 oder +1579999999 ein integer? zur erinnerung: integer sind ganze zahlen (i.d.r.) zwischen -2147483648 und 2147483647.

        und warum ist ein datum ("kunde seit") eine ganze zahl?

        eine id ist numerisch und (meistens) auto increment, lässt also keine zweideutigkeiten zu und lässt sich super indizieren.

        Kommentar


        • #5
          okey und was schlägst du vor für telefonnummern???
          du hast natürlich recht das die indetifikation eindeutiger wird - änder ich dadurch denn die abfrage die ich mache? nein oder ... ich frage natürlich weiterhin nach dem ID der in beiden tabellen gleich ist. also ich benutzte das auto inkrement feld nicht sondern ich füge es einfach nur in den untertabellen hinzu. und es dient nur zur identifikation. also ih_name laß ich auch in der kunden tabelle stehen.
          Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
          aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

          Kommentar


          • #6
            Original geschrieben von joeCrack
            okey und was schlägst du vor für telefonnummern???
            Na ganz bestimmt keinen Zahlen-Datentyp.

            Telefonnummern haben nämlich idR. eine führende Null - Zahlen aber nicht.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              bei jeder abfrage frage ich nach der gleichheit des namens und hole mir die daten. was würde den eine ID bringen.
              Vor allem Geschwindigkeit, weil sich über Strings schlecht indizieren lässt. Außerdem stell dir das Chaos vor, wenn jemand seinen Namen ändert o.ä.
              ich glaube

              Kommentar


              • #8
                Also als erstes nochmals vielen Dank für die Hilfe. Ich verstehe nicht wie ich über die Nummern eine SELECT abfrage machen soll. Wenn in der Kunden-Datenbank eine bestimmte Umsatzzahl eines bestimmten Kunden gesucht wird, dann suche ich doch nach dem Namen. Ich kann doch schlecht nach 22 suchen oder irgendeiner beliebigen Zahl. Woher soll ich denn die assoziation des zu der Nummer gehörigen Namens erhalten. Und wenn jemand seinen Namen ändert dann suche ich ja auch nach dem anderen Namen. Ich habe keine statischen Abfragen gespeichert. Wenn ich nun sage ich frage immer nach "Harry" und der schriebt sich nun neuerding "Harrie" dann wird das auch so bei der suche nach dem Kunden angegeben. Ich schreibe ja NIE in den Quellcode SELECT ..... "Harry" - nur dann hätte ich doch das von dir angesprochene Problem oder nicht? Ich glaube ja das von der Performanze her die Nummern mehr Sinn machen. Nur muß ich dann doch stehts erst per suche des Namens die Nummer des Kunden holen und dann wieder die nächste Abfrage zu machen.
                Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
                aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

                Kommentar


                • #9
                  ist das nicht erschreckend, dass du ein system zu irgendeiner kundenverwaltung schreibst, ohne auch nur ein mal ein buch über sql in der hand gehalten zu haben? die absoluten grundlagen, die in jedem buch, in jeder dokumentation stehen...

                  du weißt nicht, wie eine suche mittels LIKE funktioniert? informiere dich doch wenigstens ein bißchen über die technologie, mit der du arbeitest, bevor du "drauflos codest".

                  Kommentar


                  • #10
                    Zu JOINs bitte auch ganz dringend was durchlesen...
                    ich glaube

                    Kommentar


                    • #11
                      was hat denn die like abfrage damit zu tun und der join ....
                      warum soll ich ein running number feld da drin haben ....
                      ein kunde wird gesucht .... dieser ist namentlich bekannt ....
                      die suche wird also so aussehen das ich in kunde und konto nach dem in beiden tabellen gleichen identifikator schaue ,... nämlich die Kontonummer .... wozu brauche ich hier die running number ... warum indetifiziert diese genauer .... was kann den exakter sein als eine kontonummer ...
                      Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
                      aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

                      Kommentar


                      • #12
                        OffTopic:
                        Vielleicht fängst du statt mit den vorgeschlagenen Fachbüchern doch lieber erst mal mit einem an, welches dir grundlegende Dinge des schriftlichen Ausdrucks in deutscher Sprache nahe bringt.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          leute ist doch gut ... ich habe an meiner uni eine datenbankklausur mit 1.5 bestanden und habe bücher gelesen ... trotzdem sind mir einige sachen noch nciht klar .... urteilt doch nicht gleich so schnell nur weil ihr selber die CRACKS seid. simple frage und ich wäre euch dankbar wenn ich eine antwort bekommen könnte.
                          Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
                          aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

                          Kommentar


                          • #14
                            Nein, so "simpel" ist eine Fragestellung eben nicht, wenn du dir nicht die geringste Mühe gibst, diese verständlich und strukturiert zu formulieren, sondern nur Satzfragmente mittels Auslassungszeichen aneinanderreih(er)st.


                            Ich für meinen Teil habe keine Lust, derart gestellte Fragen erst mal zu dechiffrieren.
                            Du willst etwas von anderen, also halte ich es für das mindeste, dass du dir bei der Formulierung etwas Mühe gibst.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              gottohgotohgott. nochmal ohne punkt:

                              Wenn ich einen Kunden suche und die zu ihm gehörige Bankverbindung. Dann wird der Name eingegeben und dann suche ich in der Tabelle Kunde nach dem Namen, der dazugrhörigen Kontonummer und dann ziehe ich mit durch die Kontonummer die Bankverbindung.
                              Wie wird durch das auto increment feld meine sucher verbessert?
                              Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
                              aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

                              Kommentar

                              Lädt...
                              X