Jurijus Zaksas
Искусственный Интеллект
(466695)
3 недели назад
Да везде полный ужас. Например, почему у тебя "лицо" разделено на преступника, подозреваемого, потерпевшего и свидетеля? Почему у тебя всех свидетелей надо перечислять для каждого преступления? А если одно и то же лицо является свидетелем нескольких? А если свидетель переводится в подозреваемые - надо физически данные из одной таблицы в другую таскать? Почему ФИО выделены в отдельную таблицу? Сие могло бы иметь смысл, кстати, если бы это были клички преступников. Но обычные ФИО-то зачем?
В общем, оценка заслуженная, все забыть как страшный сон и переделать.
Ильяс ЗакировУченик (87)
3 недели назад
Спасибо за объяснение. Вопрос, как можно было организовать свидетелей, приступников, подозреваемых и пострадавших? И раз подозреваемый может относится к нескольким преступлениям, и к 1 преступлению несколько подозреваемых, как это реализовать без связи M:N
Андрей
Высший разум
(480229)
3 недели назад
Не ФИО, а Граждане (или Паспортные данные). Одного ФИО для идентификации человека мало.
Потерпевший, Свидетель, Подозреваемый, Преступник - это связь многие-ко-многим между таблицами Преcтупления и Граждане. Одна связь, а не четыре разные.
Да, связи многие-ко-многим реализуются через дополнительные таблицы. Но эти таблицы появляются уже на этапе проектирования реальной структуры БД, а на этапе ER-диаграммы это именно связи. И зачем столько отдельных связей? Добавляем в единственную таблицу связи поле "статус", которое и обозначает текущий статус гражданина в рамках уголовного дела.
Сотрудники - связь между таблицей Должности и таблицей Граждане.
Дежурства - id дежурства плюс интервал (дата / время) дежурства. На каждое дежурство создаётся новая запись. И делаются связи id дежурств и id сотрудников. Но никаких id ФИО там быть не может: связь с таблицей Граждане уже есть через таблицу Сотрудники.
И т.д... Все данные, которые могут дублироваться, выносятся в отдельные таблицы. Все связи, которые могут дублировать друг друга, удаляются.