2016-04-06 10 views
0

Ich muss Tabellen in 0NF für mein Projekt erstellen, ich muss zuerst die Tabellen in 0NF Form entwerfen, dann zur Normalisierung fortfahren und dann die ERD zeichnen. Es war jedoch eine echte Herausforderung für mich, die 0NF-Formulare meiner Tische zu bekommen, es wurde viel Zeit verschwendet, um das Redesign zu versuchen, also dachte ich daran, Hilfe von Leuten zu erbitten, die mehr Erfahrung im Datenbankdesign haben.Wie bekomme ich ein richtiges Tabellendesign (0NF) für meine Datenbank

Meine Datenbank ist von einem Automiet-System. Das System sollte Aufzeichnungen über Kunden, Autos, Mitarbeiter, Details jeder Vermietung und auch das Unternehmen soll mehrere Filialen an verschiedenen Standorten haben und jeder Filiale muss ihre eigenen einzigartigen (durch ihre Kfz-Kennzeichen identifiziert) Autos zur Verfügung haben.

  1. Ein Kunde mehrere Verleih Aufzeichnungen haben kann (dh einen Verleih im Januar dann in einem anderen .usw März), aber eine Mietvertragsunterlagen ist nur mit einem kundenbezogenen
  2. Ein Kunde mehrere Autos in einer einzigen Vermietung buchen
  3. Jede Vermietung erfolgt durch eine einzige Buchungsstelle (ein Angestellter)
  4. Mitarbeiter ist zwischen Managern und Buchungsagenten aufgeteilt. Jede Niederlassung hat einen einzelnen Manager, aber mehrere Buchungsagenten.
  5. Jeder Zweig hat mehrere Autos befindet sich dort aber jedes Auto kann

Bisher an einem einzigen Zweig angeordnet sein, ich habe mit diesen 0NF Tabellen kommen, sie obwohl mir nicht richtig aussehen:

Autos (CarID, LicensePlateNo, Marke, Modell, Baujahr, Farbe, Kilometerstand, Kapazität, Sitze, Verfügbarkeit, Rate, BranchID, BranchLocation)

Kunden (CustomerID, Vorname, Nachname, Adresse, ContactNo , Geschlecht, DOB, NIC, RentalID, Da teRented, RentalCost)

-Agent (AgentID, Vorname, Nachname, Adresse, ContactNo, Geschlecht, DOB, NIC, MonthlyRentals, Gehalt, ManagerID, Managername, MangerLastName, ManagerAddress, ManagerContact, BranchID, BranchLocation)

Vermietung (RentalID, DateRented, Dauer, RentalCost, Discount, AgentID, CarID, LicensePlateNo, Marke, Modell)

Niederlassung (BranchID, branch, BranchLocation, ContactNumber, ManagerID)

Antwort

-1

Ich habe die -Agent Tabelle mit dem Mitarbeiter Tabelle ersetzt, und ich habe zwei neue Spalten (Position und -Manager) dazugegeben. Ich glaube, die Position Spalte sollte entweder 'Agent' oder 'Manager' speichern. Wenn der Mitarbeiter ein Agent ist, sollte das Feld Manager die ID seines Managers enthalten (EmployeeID). Wenn der Mitarbeiter Manager ist, sollte die Manager Spalte höchstwahrscheinlich NULL bleiben. Ich habe auch alle anderen Spalten entfernt, die wiederholt wurden (Beispiel BranchLocation in Autos Tabelle etc ...)

Autos (CarID, LicensePlateNo, Marke, Modell, Baujahr, Farbe, Kilometerstand, Kapazität, Sitze, Verfügbarkeit, Rate, BranchID)

Kunde (CustomerID, Vorname, DOB Nachname, Adresse, ContactNo, Geschlecht, , NIC, RentalID)

Vermietung (RentalID, DateRented, Dauer, RentalCost, Discount, EmployeeID, CarID)

Branch (BranchID, branch, BranchLocation, ContactNumber, EmployeeID)

Angestellter (EmployeeID, Vorname , Nachname, Adresse, ContactNo, Gende R, DOB, Netzwerkkarte, MonthlyRentals, Gehalt, BranchID, Position, Manager)

Dank