Означает ли обязательное в MySQL Workbench, что поле ссылки не может быть NULL? - PullRequest
7 голосов
/ 29 июля 2011

Я проектирую базу данных, и мне интересно, означает ли обязательный флажок в MySQL инструмент, что это поле должно быть нулевым или к чему относится обязательное в этой ситуации?

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

Включает все для помощи.

UPD:
Я должен сказать, что после того, как я сгенерировал модели SQL и посмотрелза обоими столами я не увидел ничего особенного.Я начинаю думать, что эта обязательная опция отображается только визуально, но функционально ничего не значит.

Если я ошибаюсь, помогите, пожалуйста.Снова танки.

Ответы [ 3 ]

8 голосов
/ 10 июня 2012

Хорошо, я нашел это.

Допустим, у вас есть одна таблица с именем User и вторая с именем Address, и вы хотите установить связь между ними. Пример может выглядеть так:

Пользователь
id
Имя

Адрес
id
user_id
улица

Итак, у вас есть внешний ключ в Address для User. Если вы установите это отношение, все поля являются обязательными, поэтому user_id является полем первичного ключа, оно не равно нулю, а Address - id даже то же самое, но что такое Address - user_id? Это действительно часть первичного ключа в Address? Нет, это не поможет вам определить строку в этой таблице. Таким образом, Address - user_id может быть нулевым, может быть, у вас есть только Address или на таблицу Address даже ссылается компания из таблицы.

Дело в том, что обязательный флажок на стороне «ссылочной таблицы» предназначен только для визуальных эффектов, напротив, флажок на стороне «ссылочной таблицы» делает поле обнуляемым или нет.

Если обязательно, поле Address-user_id никогда не может быть нулевым. Если это не обязательно, поле может быть пустым для одной строки данных, и никакие ограничения не будут затронуты.

3 голосов
/ 06 августа 2011

Я пришел к выводу, что это просто визуальный эффект, чтобы показать, что отношения обязательны. Этот параметр никоим образом не влияет на сгенерированный код SQL.

0 голосов
/ 29 июля 2011

Скорее всего, это означает, что значение поля не может быть NULL. Я говорю, скорее всего, потому что я не могу найти «обязательное» слово в MySQL Workbench здесь.

...