|
|
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Помогите советом для реализации такой схемы. Есть у меня таблица – журнал проводок. Основные поля. ID – суррогатный ключ, Data – дата проводки, Db – счет дебета, Kt – счет кредита, а вот дальше у меня затык надо реализовать ссылку на документ выполнивший эту проводку, а они находятся в разных таблицах, и эти таблицы имеют различную структуру. В качестве сервера БД – FireBerd. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 11:39 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
добавить поля ID документа и поле "имя таблицы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 12:01 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Бизон пишет: > Помогите советом для реализации такой схемы. Есть у меня таблица – > журнал проводок. Основные поля. ID – суррогатный ключ, Data – дата > проводки, Db – счет дебета, Kt – счет кредита, а вот дальше у меня затык Суммы, суммы нет еще. Где сумма ? > надо реализовать ссылку на документ выполнивший эту проводку, а они > находятся в разных таблицах, и эти таблицы имеют различную структуру. В Используй отношение подкатегории. Оно же наследование в OOA/OOD. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 12:12 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
sergey888 пишет: > добавить поля ID документа и поле "имя таблицы" Это -- из цикла "советы как ненадо делать". Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 12:13 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
MasterZiv sergey888 пишет: > добавить поля ID документа и поле "имя таблицы" Это -- из цикла "советы как ненадо делать". Я не агитирую за такой метод, но хотелось бы понять Ваши мысли, почему именно так не надо делать. Ибо если не вдаваться в тонкости, метод кажется весьма железобетонным для новичка, особенно если уметь писать триггеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:09 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
MasterZiv Используй отношение подкатегории. Оно же наследование в OOA/OOD. Posted via ActualForum NNTP Server 1.4 Можно подробней. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 15:26 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов пишет: > Я не агитирую за такой метод, но хотелось бы понять Ваши мысли, почему > именно так не надо делать. Ибо если не вдаваться в тонкости, метод > кажется весьма железобетонным для новичка, особенно если уметь писать > триггеры. И динамические запросы. А динамические запросы есть зло. В хорошо спроектированной БД информация о том, где что лежит, должна быть статической, должна быть метаинформацией, а не информацией как таковой, используемой в работе. Короче, такие хачки только для Клиппера и DBase-а проходят, да и то (я бы сказал) очень плохим стилем считаются. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 15:32 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Бизон пишет: > Используй отношение подкатегории. Оно же наследование в OOA/OOD. > Можно подробней. Спасибо. CREATE TABLE DOCUMENT (doc_id int primary key , ....) create table INVOICE (invoice_id int primary key, ..... constraint DOC_in_INVIOCE foreign key (invoice_id) referencing DOCUMENT) create table INVOICEXXX (invoicexxx_id int primary key, ..... constraint DOC_in_INVIOCEXXX foreign key (invoicexxx_id) reference DOCUMENT) .... create table TRANS ( trans_id int primary key, trans_date date, db_id int reference ACCOUNT, cr_id int reference ACCOUNT, summ numeric(20,2), doc_id int reference DOCUMENT) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 15:38 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
OOA/OOD скажите как расшифровать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:26 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Бизон пишет: > OOA/OOD скажите как расшифровать? Object-Oriented Analysis/Object-Oriented Design Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:30 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
MasterZivИ динамические запросы. В общем случае - нет. Абстрактный пример каскадного удаления с динамикой в триггере на Y (мог и наврать немного по мелочи, хотел смысл передать): 'delete from '+@X+' from deleted where '+@X+'.id_Y=deleted.id_Y and deleted.type='''+@X+'''' То же самое без динамики, если известно, какие таблицы каскадно удаляются. delete from child1 from deleted where child1.id_Y=deleted.id_Y and deleted.type='child1' delete from child2 from deleted where child2.id_Y=deleted.id_Y and deleted.type='child2' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 10:20 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Бизоннадо реализовать ссылку на документ выполнивший эту проводку, а они находятся в разных таблицах, и эти таблицы имеют различную структуру. Я бы конечно сделал бы одну таблицу Документы, но если уж разные, то надо обеспечить сквозной уникальный doc_id и union по всем таблицам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 10:58 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
мод то надо обеспечить сквозной уникальный doc_id и union по всем таблицам Сквозной уникальный не обязателен - можно составной ключ сделать. Имхо это проще и нагляднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 12:02 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Мне кажется лучше завести еще одну таблицу, где будут храниться все номера документов, и сквозная нумерация всех документов. Именно по этому сквозному номеру находить тип документа а потом сам документ. Чтобы упростить запросы сделать представленя UNION всех докуменов и от туда вытаскивать данные необходимые для проводок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:04 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
БизонОсновные поля. ID – суррогатный ключ, Data – дата проводки, Db – счет дебета, Kt – счет кредита... Я в свое время так и сделал. Но в банковском бухучете есть проводки, у которых по Дт идет одна сумма, а по Кт - другая. Причем и валюты у этих сумм разные! В этом случае надо либо вводить фиктивные счета, либо делить проводки на пары "Дт-Сумма" и "Кт-Сумма". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 09:48 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
CheprasovМне кажется лучше завести еще одну таблицу, где будут храниться все номера документов, и сквозная нумерация всех документов. Именно по этому сквозному номеру находить тип документа а потом сам документ. Чтобы упростить запросы сделать представленя UNION всех докуменов и от туда вытаскивать данные необходимые для проводок. Можно подробней. Пытался реализовать. Получается полная ерунда. Как с точки зрения реляционной модели реализовать, ссылку на несколько таблиц из одного поля. Столкнулся с еще одним местом где это надо применит. При вводе документа на основании другого. Тоже необходимо сохранить ссылку на документ родитель, а из может быть несколько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2007, 15:12 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
БизонКак с точки зрения реляционной модели реализовать, ссылку на несколько таблиц из одного поля. Никак. Все д.б. наоборот - эти "несколько таблиц" должны ссылать на одно поле в таблице документов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2007, 10:26 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
SPQR БизонКак с точки зрения реляционной модели реализовать, ссылку на несколько таблиц из одного поля. Никак. Все д.б. наоборот - эти "несколько таблиц" должны ссылать на одно поле в таблице документов. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2007, 17:43 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Необходимо ввести промежуточную таблицу, что-то типа журнал документов. Я правильно понял? И на ее основе организовать связь многие ко многим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2007, 18:45 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
БизонНеобходимо ввести промежуточную таблицу, что-то типа журнал документов. Я правильно понял? И на ее основе организовать связь многие ко многим. мысль что документ ссылается на проводки. а не наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 13:21 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Совсем рядом на сегодня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 14:19 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Почему Вы считаете, что Ваш проект не постигнет участь открытых бизнес*систем, которые не развившись и не избавившись от багов замирают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 20:14 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
apapacyПочему Вы считаете, что Ваш проект не постигнет участь открытых бизнес*систем, которые не развившись и не избавившись от багов замирают? Это в к чему сказали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 21:38 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Сорри! Видно использовал кнопку "Предыдущая страница". Пост к другой теме относился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 23:09 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
Исправляюсь. 1. То что Вы хототе организовать - это объект документ и объекты порожденные от объекта документ. В такой БД как PostgreSQL наследование включено в функционал БД. Если БД не поддерживает такой функционал - и литература и визуальные средства предлагают реализовать наследование при помощи заведения в таблицу-родитель специального поля "дискриминант" Таблица-родитель ИД-документа -------------------- Дискриминант (int) Таблица-потомок А ИД-документа (ссылка на ИД-родителя) -------------------------------------------- поле1... Таблица-потомок Б ИД-документа (ссылка на ИД-родителя) -------------------------------------------- поле1... Насколько это соответсвует реляционной модели данных? Вобщем, исходя из требования извлекать информацию только из таблиц, наверное, нужно еще создать еще таблицу Дискриминанты Дискриминант (int) ----------------------------------- ИмяТаблицы (varchar) 2. Хранить в документе ссылку на проводку кажется хорошим ходом. Поскольку именно из документа Вы проводите и отменяете проведения документа. Выбор того или иного варианта реляционной модели зависит от того как Вы собираетесь использовать данные. Например получить ссылку на документ из таблицы проводок скорее важно для большей информативности. Посмотреть что и как бало проведено. Поэтому думать о производительности в данном случае не так важно. В то же время проводиться и отменяться документы будут в массовом порядке. Поэтому хранить в документе ИД проводки - я за. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2007, 00:05 |
|
||
|
Реализация журнала проводок.
|
|||
|---|---|---|---|
|
#18+
SPQR БизонКак с точки зрения реляционной модели реализовать, ссылку на несколько таблиц из одного поля. Никак. Все д.б. наоборот - эти "несколько таблиц" должны ссылать на одно поле в таблице документов. Ссылка в смысле Foreign key? Так просто создаёшь несколько ограничений FK для одного поля таблицы на PK в разных других таблицах. Только толку от таких FK обычно не много. Формально можно смоделировать сущность документ, и дочерние к этой сущности специализированные сущности для конкретных видов документов. Связать их по PK. Из сущности проводка смоделировать связь с сущностью документ. Однако в физической модели реляционной БД нет нужды создавать таблицу для сущности документ, поскольку она будет состоять только из PK, соответсвенно моделировать связи других сущностей с документом с помощью FK тоже не приходится. В объектных БД гораздо проще смоделировать абстрактный тип документ и специализированные подтипы конкретных видов документов. Короче, правильная логическая модель не всегда имеет взаимнооднозначную физическую реализацию. ИМХО, нет нужды извращаться только для того чтобы впихнуть невпихуемое по крайней мере СУБД развиваются и для того, чтобы лучше отражать конструкции логического моделирования. Сейчас мы имеем такие СУБД, какие имеем со всеми ограничениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2007, 02:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1544148]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 493ms |

| 0 / 0 |
