У меня вопрос относительно моделирования базы данных.SQL принудительное отношение 1: 1
Давайте предположим, что у меня есть пользователи таблицы:
users
-------
id:int
name:text
И один USER_EMAILS:
user_emails
-----------
id:int
user_id:int
email:text
добавить ограничение внешнего ключа на user_emails.user_id
таким образом, что он должен соответствовать правильный вход в users.id
.
Однако это не гарантирует, что у каждого пользователя будет электронное письмо.
Я знаю, что на уровне приложения я могу легко обеспечить соблюдение этого правила (т.е.: проверяя, что поле «email» в форме заполнено и т. Д.), Но мне было интересно, на уровне базы данных (sql) есть способ обеспечения полноты данных? (То есть в этом случае у каждого пользователя есть электронное письмо?)
Спасибо! :)
просто добавьте не null, но вы говорите, что название отличается от вашего сообщения, говорится, что вы хотите применить соотношение 1: 1 или не нулевые значения. Если вы хотите первый вариант, просто забудьте таблицу user_emails и добавьте этот столбец в своих пользователей первичной таблицы, если вы хотите второй, просто поместите не пустой столбец или лучше используйте оба. –
Почему бы не использовать триггер? –
Как подскажите @JuanRuizdeCastilla просто добавьте ограничение NOT NULL на ваше электронное письмо: текстовое поле. – narendra