@Ste1Z

1 или 2 сущности для регистрации?

1. У меня есть 2 связанные сущности для профиля - работник(личные данные) и пользователь(логин, пароль, роль). На данный момент при регистрации у меня заполняется информация одновременно для обеих сущностей, но из-за этого периодически вылезают разного рода проблемы, которые приходится решать костылями(по-моему мнению). Знаю, что гораздо проще было бы сделать одну сущность сразу со всеми данными, но как правильно делать на самом деле?
2. Если делать регистрацию только по логину и паролю, а заполнение профиля после(которое необходимо), то придется в БД убирать not null для личных данных. Как быть с этим?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
@tukreb
На самом деле тут просто. Просто решите для себя один вопрос.
Вы любите NULL или нет? Я рекомендую не любить его, т.к в долгую это решит массу проблем :), такие как послать в коллекцию null, а потом месяцами дебажить откуда растут проблемы.
Если часто бывают NULL данные (скажем так в более 50% случаях), то вы правильно сделали, что разделили их на две таблицы.
Если же там редко бывают NULL значения, то лучше объединить их в 1 таблицу.
П.С Но так вы пишите в вопросе, что вторая таблица - это личные данные, то вероятно, это не обязательные данные, а значит их никто заполнять не будет (или будут заполнять мусорными данными), а значит, если вы соедините их в 1 таблицу, то у вас половина значений всегда будет NULL, что в общем-то плохо :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Если они связаны 1:1 то соедини их в одну табличку и все.

UPD: Автор если ты сомневаешся - то лучше не делай. На все технические вопросы тут ответят.
Но риски - это дело твоё. Похлопывать тебя по плечу или давать санкции на авантюры - никто не будет.
Если ты отвественный за БД и уверен в себе - то иди и делай.
Ответ написан
Комментировать
@nApoBo3
Работник и пользователь, это две разные сущности.
Работник может не быть пользователем.
Пользователь может не быть работником.
Пользователи и работники связаны 1:1 опционально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы