У меня есть база данных с отношениями , PoliceOfficer
, Suspect
и многие другие человекоподобные отношения. Часто один и тот же человек может фигурировать в нескольких отношениях, поскольку в некоторых случаях полицейский может быть подозреваемым. Имело бы смысл сделать другое отношение Person
, чтобы сохранить все данные, относящиеся к человеку, и просто указать на объекты человека во всех моих личных отношениях?Дизайн базы данных с несколькими личностными отношениями
ответ
Я полностью согласен с комментарием @ Guranjan.
Также рассмотрите вопрос о том, может ли человек иметь кратность одной и той же роли и при каких обстоятельствах. У вас может быть person
, который является Suspect
более чем одним case
. Таким образом, у каждого case
может быть много подозреваемых, свидетелей и офицеров, и каждый из них указывает на уникального человека.
Таким образом, таблицы будут:
case
case-id
crime-description
date
time
etc
case-person
case-id
person-id
type (witness, suspect, officer)
person
person-id
name
dob
address
etc
Не уверены в вашем случае использования, но это имело бы смысл, чтобы смоделировать его с помощью нескольких таблиц: Person
, Role
была бы таблицы измерений - Person
содержащих их детали, которые необходимо сохранить для физических лиц (имя, адрес, доб и т. д.) Role
, содержащий информацию, относящуюся ко всем возможным ролям (Свидетель, Полицейский, Подозреваемый и т. д.).
Вам понадобится таблица фактов, а, вступив эти два аа частности Scenario
так, например:
Person 1 - в сценарии 1 - это сотрудник полиции
Человек 2 - в сценарии 1 - свидетель
Person 3 - в сценарии 2 - это подозреваемый
Person 1 - в сценарии 2 - это свидетель
Люди 2 - в сценарии 2 - свидетель
В таблице Scenario
будет содержать Человек и ключи ролей
Мне нравится идея иметь отношение для всех ролей. Но как насчет атрибутов, характерных для некоторых ролей? Где я могу хранить звание полицейских и т. Д.? – Jamgreen
Вы должны иметь разную роль для каждого ранга офицера полицейского. Таким образом, человек 1 может быть сержантом (роль 1) в Сценарии 1 и инспектором (роль 2) в Сценарии 2 после продвижения по службе – econnormist
- 1. Дизайн базы данных с отношениями 2 m2m
- 2. Дизайн базы данных с несколькими вложенными таблицами
- 3. дизайн базы данных с несколькими арендаторами
- 4. Дизайн базы данных с несколькими ролями пользователя
- 5. Проблема с несколькими отношениями в дизайне базы данных
- 6. эффективный дизайн для базы данных с множественными отношениями многих-многих.
- 7. Дизайн базы данных. Если каждый стол связывается с отношениями
- 8. Дизайн базы данных - сложная проблема с ключевыми отношениями
- 9. Django базы данных с несколькими отношениями и ForeignKeys
- 10. Дизайн базы данных: как ограничить отношение n: m другими отношениями?
- 11. Основная структура данных с несколькими родительскими отношениями
- 12. Дизайн базы данных NO SQL
- 13. лучший дизайн базы данных с общими данными и несколькими приложениями
- 14. Дизайн базы данных с несколькими флажками в форме
- 15. Дизайн базы данных - продукты с несколькими категориями со свойствами
- 16. Entity Framework и дизайн базы данных с несколькими арендаторами
- 17. базы данных дизайн класса
- 18. Дизайн членства с несколькими порталами
- 19. Дизайн базы данных с JPA
- 20. связанные категории - дизайн базы данных
- 21. Ограничение ввода с отношениями базы данных
- 22. базы данных запросов с отношениями в Android
- 23. Android: Создание базы данных SQLite с отношениями
- 24. Копирование записи базы данных с отношениями
- 25. Дизайн базы данных для анкеты
- 26. Дизайн базы данных отношений (с использованием MySQL)
- 27. Неструктурированный дизайн базы данных
- 28. Дизайн эксклюзивной базы данных
- 29. Дизайн базы данных
- 30. Дизайн базы данных Django
Это, безусловно, поможет 'normalize' вы данные. Вы можете поместить общие атрибуты всех лиц, похожих на сущности, в отношение «Личность» и получить к ним доступ, используя '' '' '' '' '' '' '' 'человеку'' во всех других соответствующих отношениях. –