|
|
|
Журнал расчетов
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Такой вопрос по проектированию журнала расчетов. насколько я знаю в таблицу журнала расчетов помимо всего прочего заноситься идентификатор документа, который породил начисление. Если все первичные документа храняться в общей таблице, то внешний ключ в таблице журнала расчетов не проблема сделать. А вот как быть в ситуации, когда первичные документы хранятся в разных таблицах? как в данном случае сделать FK на документ породивший начисление в журнале расчетов? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2011, 21:34 |
|
||
|
Журнал расчетов
|
|||
|---|---|---|---|
|
#18+
sergq, делать общую таблицу документов с общими для всех полями и единым уникальным ключем, а конкретные виды документов (если они сильно различаются) привязывать к ней идентифицирующей связью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2011, 22:37 |
|
||
|
Журнал расчетов
|
|||
|---|---|---|---|
|
#18+
iljy, у меня раньше все документы хранились в 2-х таблицах. по некоторые документы имели уникальные поля. и в этих таблицах начали появляться лишние поля. в общем разделил практически все документы на отдельные таблицы. поэтому такая проблема и возникла. ключ единый для всех таблиц. пока. поясните что есть идентифицирующая связь?)) а если примерчик приведете про конкретные виды документов и идентифицирующую связь - буду благодарен )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2011, 22:43 |
|
||
|
Журнал расчетов
|
|||
|---|---|---|---|
|
#18+
sergqiljy, у меня раньше все документы хранились в 2-х таблицах. по некоторые документы имели уникальные поля. и в этих таблицах начали появляться лишние поля. в общем разделил практически все документы на отдельные таблицы. поэтому такая проблема и возникла. Не надо плодить сущности без необходимости. Сколько лишних полей у вас стало появляться? Если 2-3-4 - то это фигня. Если сильно больше - то надо было их и выносить в отдельные таблицы, а родительскую оставить. Плюс существуют решения, позволяющие оставлять такие поля и в одной таблице (например SPARSE-поля, или использование XML), хотя при этом индексирование и поиск по ним становятся затруднительны. sergqпоясните что есть идентифицирующая связь?)) а если примерчик приведете про конкретные виды документов и идентифицирующую связь - буду благодарен )))) http://www.alllectures.narod.ru/lectures/proectir_is/10.HTM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2011, 23:02 |
|
||
|
Журнал расчетов
|
|||
|---|---|---|---|
|
#18+
iljyНе надо плодить сущности без необходимости. Сколько лишних полей у вас стало появляться? сейчас посмотрел. если сгруппировать документы, которые меняют например один атрибут человека то получается 7 документов. всего по этим докам по шапке уникальных полей в пределах всех документов 23. в теле 13 полей. в принципе 6 документов можно объединить в одну таблицу. если и последний доавить тоже туда же то слегка недопонимаю как быть с ФК из другого документа. Например есть еще один документ, который в теле ссылается на седьмой документ. Ссылку то можно сделать на общую таблицу. но в ней хранятся помимо этого документа и другие. получается контроль за целостностью (чтобы все ссылки были корректны) возлагается на приложение. а в базе раз ссылка идет на общую таблицу, то впринципе в последнем документе не гарантируется на уровне базы, что ссылка в теле будет именно на седьмой документ. так как последний хранится в общей таблице. Как то сумбурно. но. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2011, 12:30 |
|
||
|
Журнал расчетов
|
|||
|---|---|---|---|
|
#18+
Чтоб не быть голословным. схема одной подсистемы приложена. Во второй части системы в другом наборе таблиц документ ссылается на 78 документ. и соответственно по этотй ссылке можно выбрать любую информацию из первой подсистемы. в том числе и ИД человека из73 документа. Все вроде красиво. но появилась необходимость во второй посистеме в том же документе ссылаться на документ-основание из третьей подситемы. ну и соответственно из него уже получать ИД человека и прочую инфу. Но получается первую подсистему обслуживает один набор таблиц, третью - свой. и непонято, как во второй подсистеме в документе сделать ФК на 1 и 3 подсистемы. можно конечно в этом документе просто хранить идентификатор чеовека и все. Но вроде как это нелогично получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2011, 16:43 |
|
||
|
Журнал расчетов
|
|||
|---|---|---|---|
|
#18+
iljysergq, делать общую таблицу документов с общими для всех полями и единым уникальным ключем, а конкретные виды документов (если они сильно различаются) привязывать к ней идентифицирующей связью. те будет норм если сделать : общая таблица для всех документов doc (id, id_parent, doc_type, doc_number, doc_date) таблицы шапки title (id, id_doc, ...) табличные части ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2011, 13:42 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37414568&tid=1542046]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 542ms |

| 0 / 0 |
