Как правильно связать две таблицы?

У меня есть две таблицы связанные отношением один-к-одному. введите сюда описание изображения

Я правильно понимаю, что при добавлении нового пользователя, я сначала должен добавить его в таблицу Authenticztion`, узнать под каким LoginId он добавился и лишь потом добавлять запись в таблицу Clients, где и укажу полученный LoginId?

Исправьте меня, пожалуйста, если я делаю что то не так или же можно сделать более разумно и правильнее.


Ответы (1 шт):

Автор решения: teran

в части связывания все верно, если имеет смысл разделение на 2 таблицы. В части самой таблицы, обратите внимание, на следующее

  • lastname и surname это синомнимы, обозначающие фамилию. и в целом это слово целиком, CamelCase тут ни к месту.
  • Также стоит обратить внимание на использование типа char, обычно это константная длина, чаще используют varchar переменной длины.
  • врядли есть какой-либо смысл хранить серию и номер паспорта в отдельных полях, то что первые 4 цифры у многих совпадают и обозначают серию не значит что их надо разделять при хранении, номер без серии смысла не имеет.
  • обратите внимание на тип данных smallint. Если серию паспорта вы в него еще впихаете, то ни номер паспорта ни номер телефона туда явно не поместятся.
  • Вообще номер телефона не стоит хранить числом. И в целом, подумайте, возможно потребуется хранить несколько номеров телефонов для каждого клиента, тогда потребуется связь один-ко-многим.

зы. добавление записей логин-клиент можете обернуть в транзакцию. также надо обеспечить уникальность значения поля login

→ Ссылка