Диаграмма ER - проблемы проектирования

Есть 3 сущности:

  1. модель_автомобиля
  2. средство передвижения
  3. extra_options (например, открытый верх, кожаные сиденья и т. д.)

Модель транспортного средства может иметь подмножество дополнительных параметров.
У транспортного средства может быть подмножество дополнительных параметров модели.

Я пытался часами понять, как представить это как диаграмму er, но безуспешно. Я думал о троичных отношениях, и хотя я не совсем понимаю это, я думаю, что это не так.
Я думал о создании еще двух объектов, model_ext и Vehicle_ext, чтобы Vehicle_ext был связан с model_ext, но это не так. не хороший дизайн.

Это мой первый дизайн er-диаграммы. Я действительно запутался (прочитайте главу er-диаграммы в «Silberschatz, Database System Concepts» уже три раза), поэтому любая идея будет оценена по достоинству.


erd
person user3075953    schedule 06.12.2013    source источник


Ответы (1)


Вы пытались добавить новую таблицу, скажем, «vehicle_vehicle_model_extra_options_map»? (вы можете назвать эту таблицу как угодно коротким, но для лучшего объяснения я использую __map как стандартный способ определения таблиц карт.)

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

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

person stackguy    schedule 06.12.2013
comment
Я не понимаю, как на этой диаграмме выполняется ограничение дополнительных возможностей автомобиля как подмножества дополнительных функций его модели. Объяснение было бы потрясающим. Спасибо за ваш ответ! - person user3075953; 07.12.2013
comment
Понял. В этом случае 1-* от Vehicle до Vehicle_vehicle_model_extra_map следует удалить. Это должно позаботиться об этом. - person stackguy; 10.12.2013
comment
Просто чтобы добавить к этому, вы сказали: «Модель автомобиля может иметь подмножество дополнительных опций». 0-* от Vehicle_Model к Vehicle_vehicle_model_extra_features_map позаботится, и другая вещь, которую вы сказали: «Автомобиль может иметь подмножество дополнений своей модели». адресация осуществляется через отношение 1-* между таблицей Vehicle и Vehicle_Model. - person stackguy; 10.12.2013