|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.10.2023, 20:02 | #1 |
Новичок
Джуниор
Регистрация: 31.10.2023
Сообщений: 3
|
Создание структуры БД: договор, физлица, юрлица. Как связать?
Подскажите новичку куда копать при создании структуры базы данных.
Есть три таблицы: Договор Клиенты физические лица Клиенты юридические лица Как создать связь, чтобы в договоре можно было выбирать или клиента физлицо или клиента юрлицо? Если делать одну общую таблицу клиенты, содержащую информацию и о физлицах, и о юрлицах, то она получается громоздкая и много пустых полей. Может есть другая, правильная реализация? |
31.10.2023, 20:21 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Сделайте таблицу связей ид, ид физ, ид юр
|
01.11.2023, 01:14 | #3 |
Форумчанин
Регистрация: 13.03.2023
Сообщений: 113
|
Когда-то я много работал с реляционными базами данных и часто сталкивался с подобной ситуацией. Использовал нотацию IDEF1X и отношение категоризации. Попробуйте поискать в этом направлении.
|
01.11.2023, 09:17 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
два поля ссылки
1 -- на юр. лица 2 -- на физ. лица заполняется одно из... можно в отдельной таблице + поле ссылка на договор
программа — запись алгоритма на языке понятном транслятору
|
01.11.2023, 12:05 | #5 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 494
|
1 таблица Клиенты
id - идентификатор строки (идентификатор клиента) type_id - тип клиента (далее общие поля для клиентов не зависищие от типа) 2 таблица Тип клиента id - идентификатор строки (идентификатор типа) name - Наименование типа (юр лицо , физ лицо) (далее поля специфические для типа клиентов) 3 таблица Юр клиенты id - идентификатор строки client_id - идентификатор клиента из таблицы Клиенты (далее поля специфичные для юр клиентов) 4 таблица Физ клиенты id - идентификатор строки client_id - идентификатор клиента из таблицы Клиенты (далее поля специфичные для физ клиентов) 5 таблица Договор id - идентификатор строки code - номер/код договора client_id - идентификатор клиента
стимулятор https://yoomoney.ru/to/41001303250491
|
01.11.2023, 16:17 | #6 |
Форумчанин
Регистрация: 13.03.2023
Сообщений: 113
|
Целесообразно еще в таблицах юр и физ ввести составной внешний ключ по полям id+type_id таблицы клиентов. Дополнительный контроль целостности (не позволит юрам ссылаться на записи для физов и наоборот).
Вообще такие ситуации очень хорошо разруливают всякие CASE для разработки баз данных (например, erwin). Помнится, он сразу генерировал скрипты для таблиц, представлений, индексов, ограничений, хранимых процедур CRUD etc. Избавляет от большого объема ручной работы и облегчает модификацию/сопровождение. |
01.11.2023, 17:43 | #7 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 494
|
Не вижу выгоды. В таблице физиков все type_id будут например 1, в таблице юриков все type_id будут 2.
стимулятор https://yoomoney.ru/to/41001303250491
|
01.11.2023, 18:12 | #8 | |
Форумчанин
Регистрация: 13.03.2023
Сообщений: 113
|
Цитата:
Таблица физ ссылается на внешний ключ client_id из таблицы Клиенты, но это всего лишь число. Ничто не мешает ошибочно занести в таблицу физ ключ записи клиента, который на самом деле юр. На составной ключ можно наложить constraint, и тогда SQL сервер просто не примет такую ошибочную транзакцию. Хороший код должен защищать целостность данных. |
|
02.11.2023, 11:40 | #9 | |
Новичок
Джуниор
Регистрация: 31.10.2023
Сообщений: 3
|
Цитата:
а можно поподробнее? |
|
02.11.2023, 11:51 | #10 |
Новичок
Джуниор
Регистрация: 31.10.2023
Сообщений: 3
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
договор подряда | ts-alan | Свободное общение | 19 | 09.05.2015 23:15 |
открыть договор | yuresku | Microsoft Office Excel | 2 | 19.05.2014 01:45 |
BPwin - Договор с поставщиком. | wert696 | Помощь студентам | 0 | 22.03.2013 08:47 |
Договор | WizarD.89 | Microsoft Office Word | 3 | 16.01.2011 20:07 |
Как создать защищенный договор | bigfoot | Microsoft Office Word | 1 | 27.12.2009 01:37 |