powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Журнал расчетов
7 сообщений из 7, страница 1 из 1
Журнал расчетов
    #37394788
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.


Такой вопрос по проектированию журнала расчетов.

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

А вот как быть в ситуации, когда первичные документы хранятся в разных таблицах? как в данном случае сделать FK на документ породивший начисление в журнале расчетов?


Спасибо
...
Рейтинг: 0 / 0
Журнал расчетов
    #37394843
iljy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergq,

делать общую таблицу документов с общими для всех полями и единым уникальным ключем, а конкретные виды документов (если они сильно различаются) привязывать к ней идентифицирующей связью.
...
Рейтинг: 0 / 0
Журнал расчетов
    #37394848
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iljy,

у меня раньше все документы хранились в 2-х таблицах. по некоторые документы имели уникальные поля. и в этих таблицах начали появляться лишние поля.
в общем разделил практически все документы на отдельные таблицы.
поэтому такая проблема и возникла.

ключ единый для всех таблиц. пока.


поясните что есть идентифицирующая связь?))

а если примерчик приведете про конкретные виды документов и идентифицирующую связь - буду благодарен ))))
...
Рейтинг: 0 / 0
Журнал расчетов
    #37394869
iljy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqiljy,

у меня раньше все документы хранились в 2-х таблицах. по некоторые документы имели уникальные поля. и в этих таблицах начали появляться лишние поля.
в общем разделил практически все документы на отдельные таблицы.
поэтому такая проблема и возникла.

Не надо плодить сущности без необходимости. Сколько лишних полей у вас стало появляться? Если 2-3-4 - то это фигня. Если сильно больше - то надо было их и выносить в отдельные таблицы, а родительскую оставить. Плюс существуют решения, позволяющие оставлять такие поля и в одной таблице (например SPARSE-поля, или использование XML), хотя при этом индексирование и поиск по ним становятся затруднительны.


sergqпоясните что есть идентифицирующая связь?))

а если примерчик приведете про конкретные виды документов и идентифицирующую связь - буду благодарен ))))

http://www.alllectures.narod.ru/lectures/proectir_is/10.HTM
...
Рейтинг: 0 / 0
Журнал расчетов
    #37414568
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iljyНе надо плодить сущности без необходимости. Сколько лишних полей у вас стало появляться?


сейчас посмотрел.

если сгруппировать документы, которые меняют например один атрибут человека то получается 7 документов.

всего по этим докам по шапке уникальных полей в пределах всех документов 23. в теле 13 полей.

в принципе 6 документов можно объединить в одну таблицу.
если и последний доавить тоже туда же то слегка недопонимаю как быть с ФК из другого документа.

Например есть еще один документ, который в теле ссылается на седьмой документ. Ссылку то можно сделать на общую таблицу.
но в ней хранятся помимо этого документа и другие. получается контроль за целостностью (чтобы все ссылки были корректны) возлагается на приложение. а в базе раз ссылка идет на общую таблицу, то впринципе в последнем документе не гарантируется на уровне базы, что ссылка в теле будет именно на седьмой документ. так как последний хранится в общей таблице.


Как то сумбурно. но.
...
Рейтинг: 0 / 0
Журнал расчетов
    #37414745
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтоб не быть голословным.

схема одной подсистемы приложена.



Во второй части системы в другом наборе таблиц документ ссылается на 78 документ.
и соответственно по этотй ссылке можно выбрать любую информацию из первой подсистемы. в том числе и ИД человека из73 документа.
Все вроде красиво.

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

Но получается первую подсистему обслуживает один набор таблиц, третью - свой. и непонято, как во второй подсистеме в документе сделать ФК на 1 и 3 подсистемы. можно конечно в этом документе просто хранить идентификатор чеовека и все.
Но вроде как это нелогично получается.
...
Рейтинг: 0 / 0
Журнал расчетов
    #37417525
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iljysergq,
делать общую таблицу документов с общими для всех полями и единым уникальным ключем, а конкретные виды документов (если они сильно различаются) привязывать к ней идентифицирующей связью.
те будет норм если сделать :
общая таблица для всех документов doc (id, id_parent, doc_type, doc_number, doc_date)
таблицы шапки title (id, id_doc, ...)
табличные части
?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Журнал расчетов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]