Вопрос моделирования ER - PullRequest
4 голосов
/ 25 апреля 2011

У меня следующий вопрос:

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

"Компания управляет несколькими автосервисами и автосервисами, каждый из которых имеет свой уникальный номер (gargNo). Когда владелец автомобиля связывается с гаражом, его данные записываются, и им назначается владелецNo. Их автомобиль такжезарегистрирован в этом гараже и ему присваивается идентификационный номер (carNo). Владелец может владеть одним или несколькими автомобилями, но автомобиль может быть зарегистрирован только в одном гараже. Когда автомобиль забронирован в гараже, составляется план обслуживанияэто. Сервисный план может быть уникальным для конкретного автомобиля (например, вылечить скрип от стеклоочистителей) или может использоваться для многих автомобилей (например, стандартное обслуживание 60000 миль). Любой сервисный план может состоять из одной или нескольких операций (замените масло, разберите электродвигатель стеклоочистителя и т. д.) Каждый тип операции в плане обслуживания имеет уникальный номер (№ операции).

Это мой ответ:

enter image description here

Для всех ветеранов базы данных, это выглядит нормально для вас?

Также будут приветствоваться любые другие комментарии ...

НЕHOMEWORK

РЕДАКТИРОВАТЬ - Почему люди продолжают редактировать сообщения, но не вносят изменений?

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

Основываясь исключительно на данных требованиях, игнорируя все возможные сложности в реальном мире (например, что происходит, когда владелец переводит свой автосервис из одного гаража в другой):

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

Отношения между владельцем автомобиля и гаражом связаны с автомобилем.Нет прямой связи между владельцем автомобиля и гаражом.(Учитывая наличие нескольких гаражей, обеспечение того, что один и тот же владелец нескольких автомобилей появится один раз в системе, будет сложно реализовать.)

Возможно, отношения между автомобилем и гаражом должны быть «зарегистрированы в».Строгое чтение подразумевает, что автомобиль связывается с гаражом при контакте с владельцем, а не при доставке для обслуживания.

Вам необходим объект ServicePlanType [SPT].Большинство SPT предопределено, и несколько автомобилей будут использовать данный SPT (60 000 миль).Дополнительные SPT будут добавлены, если, когда и по мере необходимости.Можно привести аргумент в пользу «стандартного» и «специального» подтипирования, но я думаю, что они будут настолько похожи (в зависимости от операций), что этого не требуется.Затем:

  • План обслуживания относится к одному автомобилю и к одному типу плана обслуживания
  • План обслуживания относится к одному типу плана обслуживания
  • Тип плана обслуживания относится к нулюили более планов обслуживания (список стандартных планов)
  • Тип плана обслуживания относится к одной или нескольким операциям (все операции должны быть определены)

Операция может относиться к нулю или более плана обслуживаниятипы.Учитывая потребность в специальных тарифных планах, может возникнуть необходимость в операциях, которые изначально не принадлежат какому-либо заданному набору сервисных планов.(Это или они добавляются по мере необходимости, что может быть приемлемо. Песчанки моей сестры однажды сбежали по дороге домой из школы, и им пришлось разобрать часть машины, чтобы вытащить ее. Никакого заряда, возможно, у них не было«Извлеките песчанку» из своей базы данных.) (Я так не выдумывал.)

Я бы не связывал тип плана обслуживания или работу с гаражом.Предположительно, если один гараж компании может это сделать, все они смогут это сделать, даже специальные.

Вам не нужно связывать план обслуживания с гаражом, поскольку автомобиль является планом обслуживаниясвязано с гаражом.С учетом вышесказанного, это может быть хорошо сделать, когда придет время для физической реализации.Кроме того, если позже автомобиль доставляется во второй гараж, отношения между машинами и гаражами изменяются, и без плана обслуживания для отношений в гараже вы теряете информацию о том, кто выполнял предыдущую работу.Правильно, я думаю, что вы захотите смоделировать модель автомобиля до гаража, но в них конкретно прописано «машина в гараж».Поднимите эти вопросы, посмотрите, что говорит владелец бизнеса.

1 голос
/ 26 апреля 2011

Исходя из формулировки проблемы, я пришел к следующему:

enter image description here

Для простоты я использовал общие поля, такие как Address, OwnerDetails и т. Д.

Редактировать: объяснение «многие ко многим» между планом обслуживания и эксплуатацией:

Операция «Замена масла» является частью планов обслуживания «Техническое обслуживание 30K», «60K«Техническое обслуживание» и «Замена масла».

Конечно, в плане обслуживания «Техническое обслуживание 30K» и «Техническое обслуживание 60K» предусмотрено несколько операций (замена масла, заправка тормозной жидкости, проверка давления в шинах, балансировка и поворот шин)..

Следовательно, взаимосвязь между планом обслуживания и операцией представляет собой взаимосвязь «многие ко многим».

Эта структура представляет собой шаблон, который затем можно применить к экземпляру VehicleService.

...