Я недавно начал играть с 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, но это, кажется, тот самый минимум, о котором я мог подумать.
Не могли бы вы прокомментировать, что может быть улучшено в этом дизайне?