2016-04-29 1 views
1

Я мог бы использовать помощь и рекомендации, как создать модель данных, которую я собираюсь использовать в своем проекте.Модель данных резервирования для Entity Framework (с кодовым кодом)

Это проект, где я собираюсь создать гостиничное приложение, где вы можете забронировать номер в комнате.

Я хочу 3 модели классов:

  • BookingModel (содержит все созданные заказы)
  • RoomModel (содержит все номера)
  • PersonDetailsModel (человека, заказавшего бронирование)

Я немного не уверен, как моя модель данных должна быть ... сделала эти условия, о которых я думал.

  • Бронирование может быть от 1 до многих номеров.
  • Комната может быть забронирована много раз, но в разные дни.
  • Бронирование может быть забронировано одним человеком.

Я предполагаю, что у нас есть отношения «многие ко многим» между бронированием и комнатой? И много до 1 между бронированием и человеком?

Код (модель):

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; } 
} 

Это, как мои модели выглядит сейчас. Не уверен, что если бронирование должно быть за иностранным ключом для PersonDetails или наоборот (persondetails должны иметь право на бронированиеID как внешний ключ)

Любые предложения, которые я пропустил?

+0

Вы видели мой ответ. – CodeNotFound

ответ

1

Есть не уверен, что бронирование должно быть для внешнего ключа PersonDetails или наоборот (persondetails должны иметь bookingID как внешний ключ)

Бронирование производится одним человеком, и человек может сделал множественный заказы. Тогда ваша модель является правильным, потому что:

  • с навигационным свойство PersonalDetails на Booking класса мы можем знать, кто это сделал.
  • Вы также можете добавить коллекцию навигационной собственности ICollection<Booking> в PersonalDetails, если вам нужно знать все бронирования, связанные с конкретным человеком.