2014-09-27 3 views
0

enter image description hereКак создать отношения между одной таблицей?

У меня есть приведенные выше таблицы в базе данных, которую я разрабатываю прямо сейчас, в MySQL. Основной целью базы данных является создание Билля Материалов для базы данных и обеспечение контроля над версиями этих Билль материалов.

Таблица деталей следует за одним наследующим столом и имеет 3 различных типа деталей: разъемы, клеммы, уплотнения.

Краткое описание Каждый тип

Connector: Эти автомобильные разъемы класса, используемые в производстве автомобильных жгутов.

Клеммы: Соединитель имеет ввинчиваемые провода, вставленные в него. Терминал обжимается на проводе, чтобы создать соединение без пайки. Эти терминалы затем соединяются со своими аналогами, когда соединитель соединяется с его коллегой в транспортном средстве.

Уплотнения: Это особый тип уплотнений, которые вставлены в провод, чтобы предотвратить попадание воды/пыли в межсоединение.

Разъем может использоваться с несколькими типами терминалов, а терминал также может использоваться с несколькими типами разъемов.

Соотношение между соединителем и уплотнением аналогично. У печати и терминала нет никаких отношений.

Что я и добиваюсь:

  1. Если пользователь просматривает некоторую часть, я хотел бы мнение, чтобы показать все это связано/сопутствующие детали. Например, если Connector id 1 можно использовать с 5 различными типами терминалов, я бы хотел, чтобы все эти терминалы отображались в представлении.

  2. Аналогичным образом, когда терминал просматривается, я хотел бы, чтобы все различные разъемы можно было использовать с показанными.

  3. Кроме того, разъем может иметь запасные части, и я хотел бы также рассказать об этом. Это отношение «один ко многим», поскольку соединитель может иметь несколько замен.

  4. И, наконец, соединитель может иметь несколько контр-частей, и я хотел бы, чтобы они были связаны также.

Я новичок в дизайне базы данных, и у меня возникли проблемы с лесом через деревья. Лично я думаю, что я должен отказаться от идеи Single Table и пойти с отдельными таблицами для Connectors, Seals и Terminals и установить отношения между ними.

Это все еще ответит, как я могу показать заменители и контр-коннекторы.

ответ

0

Если вы ищете альтернативу наследованию на одну таблицу, найдите наследование таблицы классов. В вашем случае это означало бы четыре таблицы вместо частей: частей, разъемов, уплотнений и терминалов. Если в каждой из трех последних таблиц используется общий первичный ключ из таблицы частей, вы обеспечите соответствие отношения «is-a» от 1 до 1, но не взаимоисключающей функции.

К тому же, вы не смоделировали отношения между частями и другими частями, которые вы описали в своем словесном описании. Эти отношения могут быть присущи созданным вами BOMS, но здесь они не очевидны. Если вы моделируете эти отношения, сделает ли он работу более функциональной? Я не знаю, небрежно.

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

Смежные вопросы