Ищу обратную связь на табличных отношениях, общий дизайн схемы

dba.stackexchange https://dba.stackexchange.com/questions/123765

Вопрос

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

Вот то, что у меня есть до сих пор, ссылка до полного размера изображения .

 Введите описание изображения здесь

Я в основном обеспокоен отношениями между Event_categories / event_sub_categories / teams_artists / Соревнования . .

Типичный путь для пользователя, чтобы принять приложение, будет

Спорт (Event_category) ---> Футбол (Event_sub_Category) ---> Лига чемпионов (соревнования) ---> Арсенал (Teams_artists), пропуская Соревнования для событий без соревнований, например, концерты.

Будут ли эти отношения удерживать в производственной среде? Есть ли что-нибудь более оптимальное, я с видом на? Любые другие советы вообще будут приветствовать и оценены.

Спасибо!

Это было полезно?

Решение

Категория событий и подкатегория - это классификации событий. Они ваш способ метки мероприятий (то есть мета атрибутов). Сам мероприятие является физическим вещью / начислением (независимо от вас), к которому вы присоединяете эти атрибуты. Конкуренты и конкуренты также являются физическими вещами, которые связаны с возникновением. При проектировании, это помогает осознавать, что такое физическая вещь, и какой у вас дизайн артефакт.

Я не думаю, что конкуренты или конкуренты или исполнители (если не спортивное событие) должно зависеть от вашей классификации.

** Итак, я бы вынул связь между подкоммуниками и конкуренцией. **

событие имеет исполнители. Исполнитель может быть человеком или командой. Событие будет связано с одним или несколькими исполнителями.

Соревнование, такое как УЕФА-КЛ, можно считать коллекцией событий (* не то, что осталось, а в вашей модели *). Следовательно, конкуренция не зависит (или, скорее, существо более высокого уровня) по сравнению с событием. Событие вроде как «доставка» (или экземпляра) этой конкуренции в определенное время / место.

Следовательно, соревнование -> имеет несколько (> 0) событий -> имеет несколько (> 0) исполнителей. (Это так, как я бы посмотрел на соревнования). Поэтому я бы сделал конкурс выше мероприятия (в объекте наследника - не разговаривать о наследстве здесь)

Я могу говорить о UEFA-CL, не ссылаясь на конкретное событие в его наборе. Конкурс состоит из (стабильных) команд. Конкурс может охватывать сезоны - так что вы можете даже иметь критерии поиска / сверла, такие как футбол. Вам необходимо настроить вашу продукцию, чтобы вы могли легко сделать анализ на ваших данных. Я не хотел бы похоронить конкуренцию глубоко внутри вашей наследницы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top