|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
Приветствую! Планирую сделать БД для адвоката на Firebird 1.5. Вот моя косячная схема БД: Есть следующие вопросы: - Следует ли таблицы клиентов (FIZ_CLIENTS, UR_CLIENTS) по юр. и физ. лицам слить в одну таблицу CLIENTS? - DELA = таблица дел для каждого отдельного клиента. SUDOPR = таблица видов судопроизводства. То есть каждое дело может быть либо Уголовным, либо Гражданским, либо Административным - это виды судопроизводства. Каждый вид судопроизводства состоит из нескольких порядков (этапов) (таблица PORYADOK). Например, Уголовное дело - этапы: досудебное следствие, судебное следствие. В рамках каждого порядка-этапа могут быть поданы N-ое количество судебных документов (таблица SUD_DOCS). Вопрос: как определить связи между таблицами DELA, SUDOPR, PORYADOK, SUD_DOCS? Или я прошу ссылку на толковое руководство по проектированию БД :) Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2018, 12:16 |
|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
Ни в коем случае не бить клиентов на ЮР. и ФИЗ. Курсач ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2018, 12:29 |
|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
и ещё: введите в свой проект понятие "сущность" - создайте таблицу ent и туда сущности по ID 1 юзер 2 договор 3 задача итд там, помимо ID, будете хранить всякие особенности для них, типа "что надо сделать при удалении её", ini, итд а также ent_src - источник, как сущность попала в систему колонки попроще называйте, не birthday, а birth не client_id, а cid, или peid (parent entity id) вам их сотни раз потом прописывать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2018, 18:04 |
|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
Что такое CLIENT_VIDS - это справочник типов клиентов или родительская таблица для всех клиентов? И в том и в другом случае схема кривая, но по-разному :) Связь между клиентами и делами я бы делал M:N - непонятно почему по одному делу не может быть нескольких клиентов. Связь между делами и судами тоже кривая - у дел есть этапы (аппеляция, etc.), которые могут рассматриваться в разных судах. Т.е. Вам нужна как минимум еще одна таблица - "Этапы конкретного дела" (видимо, имеющая ссылки на DELA и PORYADOK), и именно на нее будет ссылка в SUD_DOCS. В нее же из DELA перенести ссылку на суд. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2018, 19:28 |
|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
Кот МатроскинЧто такое CLIENT_VIDS - это справочник типов клиентов или родительская таблица для всех клиентов? И в том и в другом случае схема кривая, но по-разному В случае, если это справочник типов клиентов - почему кривая? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2018, 09:19 |
|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
ОзверинКот МатроскинЧто такое CLIENT_VIDS - это справочник типов клиентов или родительская таблица для всех клиентов? И в том и в другом случае схема кривая, но по-разному В случае, если это справочник типов клиентов - почему кривая? Что тогда внешний ключ на нее делает в DELA? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2018, 09:50 |
|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
Кот МатроскинОзверинпропущено... В случае, если это справочник типов клиентов - почему кривая? Что тогда внешний ключ на нее делает в DELA? Думал вы подразумеваете, что как только эта таблица станет таблицей типов клиентов, а не родительской - то само собой в DELA появится ключ по клиенту, а не по его типу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2018, 10:14 |
|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
ОзверинКот Матроскинпропущено... Что тогда внешний ключ на нее делает в DELA? Думал вы подразумеваете, что как только эта таблица станет таблицей типов клиентов, а не родительской - то само собой в DELA появится ключ по клиенту, а не по его типу. Это и называется - текущая схема кривая, ее надо менять :) P.S. Как я уже писал, правильная связь у дел с клиентами M:N, поэтому в DELA ключ по клиенту, конечно, не появится ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2018, 10:28 |
|
Косяки в проектировании БД
|
|||
---|---|---|---|
#18+
Logos300- Следует ли таблицы клиентов (FIZ_CLIENTS, UR_CLIENTS) по юр. и физ. лицам слить в одну таблицу CLIENTS? Ну не совсем в одну, набор атрибутов то разный, но сделать общую таблицу и из нее в свои таблицы связь протянуть -да. Так будет удобнее и правильнее FK делать Logos300- DELA = таблица дел для каждого отдельного клиента. SUDOPR = таблица видов судопроизводства. То есть каждое дело может быть либо Уголовным, либо Гражданским, либо Административным - это виды судопроизводства. Каждый вид судопроизводства состоит из нескольких порядков (этапов) (таблица PORYADOK). Например, Уголовное дело - этапы: досудебное следствие, судебное следствие. В рамках каждого порядка-этапа могут быть поданы N-ое количество судебных документов (таблица SUD_DOCS). Вопрос: как определить связи между таблицами DELA, SUDOPR, PORYADOK, SUD_DOCS? Для хранения документов я бы сделал единую таблицу. Для определения связей между таблицами получше разберитесь в предметной области. Не продумали совсем связь "порядка" и "дела". Данные об оплате писать в основную таблицу с делами не есть хорошо. Лучше выделить. И что там кроме госпошлины никаких других оплат нету? Logos300Или я прошу ссылку на толковое руководство по проектированию БД :) Заранее спасибо тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2018, 13:12 |
|
|
start [/forum/topic.php?fid=32&msg=39659496&tid=1540030]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 282ms |
0 / 0 |