Я хотел бы моделировать жанры игр таким образом, чтобы жанры могли иметь подразделы, например.
Жанр | Sub Жанр
Действие> Приключения
Action> Shooter
Моделирование> Моделирование автомобиля
Как вы можете себе представить, я не то, что Shooter быть Подсекция моделирования, а также, и т.д.
I думал делать это, но есть лучший способ:
Жанры (Жанр {PK}, поджанр {FK})
поджанр (поджанр {PK}, {Жанр FK})Как смоделировать подразделы в реляционной базе данных?
0
A
ответ
2
Я бы, вероятно, создать Жанры и поджанров таблицы, как:
Жанры (GenreID {PK}, GenreName)
поджанр (SubGenreID {PK}, GenreID {FK}, SubGenreName)
Нет причин иметь SubGenre как FK в таблице жанров. Это ограничивает вас одним жанром на поджанр.
1
Я думаю, что вам нужно:
Genres
------
Genre PK
SubGenres
---------
SubGenre PK
Genre FK
или это (если есть шанс на 2 Жанры имеющих поджанров с таким же названием), например:
Action> Space
Simulation> Space
Genres
------
Genre PK
SubGenres
---------
Genre PK FK
SubGenre PK
Смежные вопросы
- 1. Как смоделировать уникальные наборы в реляционной базе данных (sqlite)
- 2. Версии в реляционной базе данных
- 3. Как вставить данные в реляционной базе данных
- 4. Как смоделировать java.time.duration в базе данных Mysql
- 5. Как смоделировать журнал в базе данных?
- 6. Независимость данных в реляционной базе данных
- 7. Сохранение иерархии папок в реляционной базе данных
- 8. Значения конфигурации в реляционной базе данных?
- 9. метод свертывания в реляционной базе данных
- 10. Представление заказов в реляционной базе данных
- 11. MySQL суммирует числа в реляционной базе данных
- 12. «Продлить» отношения в реляционной базе данных
- 13. Поддержание целостности подкласса в реляционной базе данных
- 14. Сохранение объектов R в реляционной базе данных
- 15. Сохранение любого объекта в реляционной базе данных
- 16. Обоснование хранения XML в реляционной базе данных
- 17. Структурированный ведение журнала в реляционной базе данных
- 18. Моделирование географических местоположений в реляционной базе данных
- 19. Результаты таблицы объединений в реляционной базе данных
- 20. Моделирование экзистенциальных фактов в реляционной базе данных
- 21. Иерархическая фильтрация в реляционной базе данных
- 22. Выражая ан-отношения в реляционной базе данных
- 23. Хранение портфеля акций в реляционной базе данных?
- 24. Моделирование атомных фактов в реляционной базе данных
- 25. Пара ключевых значений в реляционной базе данных
- 26. Правило объединения правил в реляционной базе данных
- 27. Looping в реляционной базе данных с Python
- 28. Как хранить различную версию данных в реляционной базе данных?
- 29. База данных MySQL. Как использовать даты в реляционной базе данных?
- 30. Хранение объекта «readonly» как сериализованных данных в реляционной базе данных
В вашем втором примере, в случае двух жанров, имеющих поджанры с тем же именем, было бы лучше переименовать таблицу поджанров в жанры _subgenres и использовать его как таблицу соединений для вашего первого определения поджанров - создания отношения M: M. – gangreen
@gangreen: На самом деле это похоже на отношения «M: M», как есть. Только с соединительной таблицей и без второй таблицы :) –
Вправо, вправо. Я предполагаю, что у меня возникают проблемы с нормальной формой/обновлением аномалий, с которыми можно столкнуться. Например, если два жанра разделили поджанр «Космос», но он был опечатан «Спайк»; можно было бы исправить орфографию в одной записи, но не другую. Опять же, возможно, в некоторых случаях это было бы предпочтительнее, чтобы это произошло ... – gangreen