@SteepZero

Как лучше перепроектировать базу?

В системе есть два вида клиентов: Client Individuals (физ. лица) и Client Legals (юр. лица)

Предыдущий разработчик реализовал деление на типы следующим образом:

Есть таблица clients, которая содержит информацию о привязанном к клиенту менеджере и прочие бизнес-данные

Есть таблица client_individuals, которая хранит в себе связть с записью из таблицы clients (client_id) и набор полей, характерный для физ. лиц (дата рождения, паспортные данные и т.д.)

Есть таблица client_legals, которая хранит в себе связть с записью из таблицы clients (client_id) и набор полей, характерный для юр. лиц (ОГРН, вебсайт, дата ренистрации и т.д.)

Такой вариант не кажется мне самым удобным

У меня есть идея такой структуры:
таблица clients - хранит created_at, updated_at, type (физ/юр)
таблица client_fields - хранит символьный код поля (code), название поля (name), описание поля (description)
таблица client_values - хранит значение поля (value), связь с символьным кодом поля (client_field_code) и клиентом (client_id)

Но мне кажется такая вещь немного избыточной в силу того, что набор полей меняется редко

Уверен, можно придумать менее пухлый и более удобный варинат
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 5
@imhuman
Мне кажется существующий вариант вполне хорош и удобен. Чем он вам не угодил?
Ответ написан
@kn0ckn0ck
Продюсер
Предыдущий разработчик сделал все правильно, по классике.

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

Оставьте как было.
Ответ написан
yellow79
@yellow79
Senior Software Engineer
таблица clients - id, created_at, updated_at, type
таблица client_fields - client_id, field_name, field_value

Но я так понимаю у вас примерно тоже самое, просто описание полей вынесено в отдельную таблицу. Вполне себе достойное решение
Ответ написан
@d-stream
Готовые решения - не подаю, но...
В принципе есть еще клиенты-ИП...
Притом в половине случаев атрибуты ИП схожи с физиком, в другой половине - с юриком...
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
RUVENTS Москва
от 90 000 до 100 000 руб.
от 45 000 до 80 000 руб.
4px Москва
от 100 000 до 150 000 руб.
18 авг. 2018, в 01:10
17000 руб./за проект
17 авг. 2018, в 23:00
5500 руб./за проект