![]() |
Datenbank Frage
Ich muss eine Fahrtenbuchanwendund mit delphi und ParadoxTabellen schreiben.
Dafür habe ich zwei Tabellen: Fahrzeuge und Fahrtenbuch. Fahrzeuge(Kennzeichen, Hersteller, Typenbezeichnung, Fahrzeugtyp, Fraftstoffart, Anfangskilometer) Fahrtenbuch(Kennzeichen, Datum, Abfahrtsort, Fahrtziel, Abfahrtszeit, Ankunftszeit, Kilometerstand, Grund, Fahrer, Tankmenge, Tankkosten, Bemerkung) 1) Ist das so schon in der 3. Normalform?? 2) Wäre ne andere Tabellenaufteilung sinnvoller?? 3) Wie kann ich, da ich die Tabellen Programmieren muss die Schlüssel erstellen. Wie einen Primer, und wie kann ich einen Sekundärschlüssel erstellen?? 4) Sind die von mir gewählten Schlüssel so richtig, oder müssten die anders sein? Wäre cool, wenn ihr mir helfen könntet. The_Tremendous :coder2: |
Re: Datenbank Frage
Hallo The_Tremendous,
zu 1) So wie ich das sehe sind die beiden Tabellen in der 3. Normalform. zu 2) das musst du selbst wissen, es gibt weißgottwieviele Möglichkeiten für die beiden Tabellen :roll: zu 3) Du musst die Tabellen nicht programmieren, sondern erstellen. Wie machst du dies? Über die Datenbankoberfläche oder mit SQL? zu 4) In Tabelle "Fahrtenbuch" musst du einen anderen Primärschlüssel wählen, da mit einem Auto durchaus mehrere Fahrten gemacht werden können, und deshalb der Schlüssel "Kennzeichen" nicht mehr eindeutig ist. Evtl. löst du es mit einer AutoInc-ID und setzt "Kennzeichen" als Foreign Key fest. Greetz alcaeus |
Re: Datenbank Frage
Zitat:
Zitat:
Abfahrtsdatum & Abfahrtsuhrzeit können in einem Feld gespeichert werden. Primärschlüsselfelder wären dann Kennzeichen & Abfahrtszeit zusammen. |
Re: Datenbank Frage
Hallo The_Tremendous,
1) ja, es ist schon die dritte Normalform 2) die Aufteilung ist in Ordnung 3) Beim Erstellen der Tabelle kannst du einen * in das Kennzeichenfeld packen, dann wird es zum Primärschlüssel. Wenn du noch einen Sekundärschlüssel brauchst, kannst du diesen auch über die Datenbankoberfläche erstellen. Einfach unter Tabelleneigenschaften "Sekundärindizes" auswählen. 4) Du könntest alternativ auch beiden Tabellen eine ID verpassen, aber du kannst auch das Kennzeichen benutzen. |
Re: Datenbank Frage
Hi...
Nebenbei: Das mit der 3. Normalform ist so eine Sache... Es ist immer gut in diese Richtung zu denken, aber nicht immer die 3. normalform mit gewalt anzuwenden. Meine persönliche Meinung... Dein Kennzeichen kann streng genommen kein Primärschlüssel sein. weil 1. das Kennzeichen im Ausland nochmal vorkommen kann und 2. irgendwann der Wagen abgemeldet wird und nach 6 Monaten (glaub) ein Zweites mal auf Deutschlands Straßen fährt. Der Schlüssel KennzeichenDatum (soll doch der Schlüssel sein, oder?) Kann nur funktionieren, wenn du zu jedem Datum und Fahrzeug auch NUR ein einzigen Eintrag erlauben willst. Wenn du mehr brauchst oder einen nachtrag pflegen willst ist das nicht mehr Möglich. Meine Empfehlung: Mach eine "nichtssagende" ID, mit Autoincrement. Das ist eine saubere, eindeutige Lösung, die dir irgenswann viel ärger erspart. Ausserdem brauchst du natürlich zu jedem Deiner Felder Hersteller, Typenbezeichnung, Fahrzeugtyp, Kraftstoff eine eigene tabelle um eine 1:n Beziehung herstellen zu können. Also kommst du mit zwei Tabellen nicht aus. Hab mir das nur kurz angeschaut, aber das ist erstmal alles was mir so aufgefallen ist. MfG Tonic [Edit] Ich seh grad, du hast deinen beitrag überarbeitet... So wie es jetzt ausschaut geht es garnicht. Wenn du in dem Fahrtenbuch das Kennzeichen als primärschlüssel einstzt, dann kannst du für Jeden Wagen jemals nur einen Eintrag machen und nie einen zweiten... [/Edit] |
Re: Datenbank Frage
Ich hoffe, dass das "nur" eine Übungsaufgabe ist.
Wenn das regulär eingesetzt werden soll, muss das Programm imho zugelassen werden. Frag mich jetzt aber nicht wo. Das kann dir aber vermutlich das örtliche Finanzamt mitteilen. |
Re: Datenbank Frage
Tabelle für Fahrer wäre sinvoll und eine Tabelle für Orte.
Wenn der Abfahrtsort IMMER gleich ist könnte man bei Tabelle Orte auch die Entfernung hinzuschreiben. mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz