2016-04-29 16 views
1

Ich könnte Hilfe und Ratschläge dazu verwenden, wie ich mein Datenmodell erstellen soll, das ich in meinem Projekt verwenden werde.Reservierungsdatenmodell für Entity Framework (Code-First)

Es ist ein Projekt, wo ich eine Hotelanwendung erstellen werde, wo Sie eine Reservierung für ein Zimmer vornehmen können.

Ich möchte drei Modellklassen:

  • BookingModel (hält alle erstellten Buchungen)
  • RoomModel (hält alle Räume)
  • PersonDetailsModel (die Person, die die Buchung zu bestellen)

Ich bin ein wenig unsicher, wie mein Datenmodell sein sollte ... habe diese Begriffe gemacht, an die ich gedacht habe.

  • Eine Buchung kann 1 zu viele Räume haben.
  • Ein Zimmer kann mehrmals gebucht werden, aber an verschiedenen Tagen.
  • Eine Buchung kann von einer einzelnen Person gebucht werden.

Ich denke, dass wir eine viele-zu-viele Beziehung zwischen Buchung und Zimmer haben? Und eine viel zu 1 zwischen Buchung und Person?

-Code (Modelle):

public class Booking 
{ 
    public int BookingID{ get; set; } 
    public string BookingNumber{ get; set; } 
    public DateTime CheckInDate { get; set; } 
    public DateTime CheckOutDate { get; set; } 
    public int PersonDetailsID { get; set; } 

    public virtual PersonsDetails PersonsDetails { get; set; } 
    public virtual ICollection<Room> Rooms { get; set; } 
} 

public class PersonDetails 
{ 
    public int PersonDetailsID{ get; set; } 
    public string FirstName{ get; set; } 
    public string LastName{ get; set; } 
} 

public class Room 
{ 
    public int RoomID{ get; set; } 
    public string RoomNumber{ get; set; } 

    public virtual ICollection<Booking> Bookings{ get; set; } 
} 

Dies ist, wie meine Modelle jetzt aussieht. Ich bin mir nicht sicher, ob die Buchung einen Fremdschlüssel für Personendetails haben sollte oder anders herum (Personendaten sollten BuchungsID als Fremdschlüssel haben)

Irgendwelche Vorschläge, die ich verpasst habe?

+0

hast du meine antwort gesehen. – CodeNotFound

Antwort

1

Haben nicht sicher, ob Buchung um für Fremdschlüssel zu PersonDetails oder die andere Art und Weise haben sollte

Buchung wird von einer Person (persondetails sollte BookingID als Fremdschlüssel haben) und eine Person kann aus mehreren Buchungen. Dann ist Ihr Modell richtig, weil:

  • mit Navigationseigenschaft PersonalDetails auf Booking Klasse können wir wissen, wer es gemacht.
  • Sie können auch eine Sammlung Navigationseigenschaft ICollection<Booking> in PersonalDetails hinzufügen, wenn Sie alle Buchung im Zusammenhang mit einer bestimmten Person wissen müssen.
Verwandte Themen