Django дизайн моделей для системы бронирования - PullRequest
0 голосов
/ 22 марта 2020

Я недавно начал играть с Django и базами данных, чтобы лучше познакомиться с этим. У меня есть некоторое понимание предмета, но я не уверен в одном выборе дизайна, который я сделал, и я буду благодарен за любые комментарии / предложения по этому вопросу.

Моя идея - написать простое приложение, которое позволит бронировать места проведения конференции Это могут быть как отели, так и отдельные конференц-залы. В отеле есть вероятность того, что есть номера для сна, а также ресторан / возможность питания. Более того, в одном отеле или конференц-зале может быть несколько конференц-залов разных размеров.

Мой текущий дизайн моделей следующий:

class Service(models.Model): 
    Name = models.CharField(max_length = 255) 
    Address = models.CharField(max_length = 255) 
    City = models.CharField(max_length = 100) 
    PostalCode = models.CharField(max_length = 10) 
    Country = models.CharField(max_length = 100) 
    TelephoneNumber = models.CharField(max_length = 20) 
    Website = models.CharField(max_length = 100) 
    Email = models.CharField(max_length = 100) 
    Description = models.TextField() 

    def __str__(self): 
        return self.Name 

class Catering(Service): 
    MaxMeals = models.IntegerField() 

class Venue(Service): 
    Catering = models.ForeignKey(Catering, on_delete = models.SET_NULL, blank = True, null = True) 
    ProvidesSleeping = models.BooleanField() 

class RoomT(models.Model): 
    Venue = models.ForeignKey(Venue, on_delete = models.CASCADE) 
    OccupancyLimit = models.IntegerField() 

class HotelRoom(RoomT): 
    RoomType = models.IntegerField() 

class ConferenceRoom(RoomT): 
    HasProjector = models.BooleanField()

Я знаю, что можно добавить гораздо больше дополнительных вещей, таких как Удобства или другие типы HotelRoom, но это, кажется, тот самый минимум, о котором я мог подумать.

Не могли бы вы прокомментировать, что может быть улучшено в этом дизайне?

...