Новые проводки (постановка)
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| (не показаны 5 промежуточных версий 1 участника) | |||
| Строка 11: | Строка 11: | ||
companykey dintkey, | companykey dintkey, | ||
| + | |||
| + | dtkey dintkey, | ||
| + | ctkey dintkey, | ||
/* | /* | ||
| Строка 32: | Строка 35: | ||
имеем дело с последовательностью операций. | имеем дело с последовательностью операций. | ||
*/ | */ | ||
| − | prevkey dforeignkey | + | prevkey dforeignkey, |
| + | |||
| + | |||
| + | FOREIGN KEY a2_fk_entry_masterentrykey (masterentrykey) | ||
| + | REFERENCES a2_entry (id) | ||
| + | ON DELETE CASCADE | ||
| + | ON UPDATE CASCADE, | ||
| + | FOREIGN KEY a2_fk_entry_companykey (companykey) | ||
| + | REFERENCES gd_ourcompany (companykey) | ||
| + | ON DELETE NO ACTION | ||
| + | ON UPDATE CASCADE, | ||
| + | FOREIGN KEY a2_fk_entry_dtkey (dtkey) | ||
| + | REFERENCES ac_account (id) | ||
| + | ON DELETE NO ACTION | ||
| + | ON UPDATE CASCADE, | ||
| + | FOREIGN KEY a2_fk_entry_ctkey (ctkey) | ||
| + | REFERENCES ac_account (id) | ||
| + | ON DELETE NO ACTION | ||
| + | ON UPDATE CASCADE, | ||
| + | FOREIGN KEY a2_fk_entry_prevkey (prevkey) | ||
| + | REFERENCES a2_entry (id) | ||
| + | ON DELETE NO ACTION | ||
| + | ON UPDATE CASCADE | ||
); | ); | ||
| Строка 38: | Строка 63: | ||
id dintkey, | id dintkey, | ||
| − | upkey dforeignkey, | + | /* |
| + | Мы больше не ограничиваем структуру двумя уровнями вложенности | ||
| + | шапка-позиция. Документ может быть сложным с неограниченным количеством | ||
| + | уровней вложенности. upkey -- ссылка на таблицу верхнего уровня. | ||
| + | */ | ||
| + | masterkey dforeignkey, | ||
| + | /* | ||
| + | Следующие поля необязательны. Разработчик сам решает будут они | ||
| + | присутствовать в конкретном документе или нет. | ||
| + | */ | ||
[docnumber ddocnumber,] | [docnumber ddocnumber,] | ||
[docorder dinteger,] | [docorder dinteger,] | ||
| − | creationdate | + | [creationdate dcreationdate,] |
| − | creatorkey | + | [creatorkey dcreatorkey,] |
| − | editiondate | + | [editiondate deditiondate,] |
| − | editorkey | + | [editorkey deditorkey,] |
| − | aview | + | [aview dsecurity,] |
| − | achag | + | [achag dsecurity,] |
| − | afull | + | [afull dsecurity,] |
| − | + | ||
| + | /* | ||
| + | Поля документа, содержащие объект, признаки, значения. | ||
| + | */ | ||
[attr1] | [attr1] | ||
... | ... | ||
| Строка 58: | Строка 94: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | ==Пример использования== | ||
| + | |||
| + | <syntaxhighlight lang="sql"> | ||
| + | CREATE TABLE | ||
| + | </syntaxhighlight> | ||
[[Category:Постановка]] | [[Category:Постановка]] | ||
Текущая версия на 14:20, 23 ноября 2016
CREATE TABLE a2_entry ( id dintkey, /* Для сложных проводок мы имеем обязательно одну главную запись и несколько дополнительных дебетов или кредитов. */ masterentrykey dforeignkey, companykey dintkey, dtkey dintkey, ctkey dintkey, /* Фиксируем не только дату, но и время проводки. Там, где не принципиально или время не известно будем использовать 00:00. */ entrydate dtimestamp_notnull, /* тип документа */ doctypekey dintkey, /* ИД записи в таблице документа */ docid dintkey, /* ИД шага из бизнес-процесса */ bpseq dintkey, /* Предыдущая операция (проводка), если имеем дело с последовательностью операций. */ prevkey dforeignkey, FOREIGN KEY a2_fk_entry_masterentrykey (masterentrykey) REFERENCES a2_entry (id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY a2_fk_entry_companykey (companykey) REFERENCES gd_ourcompany (companykey) ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY a2_fk_entry_dtkey (dtkey) REFERENCES ac_account (id) ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY a2_fk_entry_ctkey (ctkey) REFERENCES ac_account (id) ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY a2_fk_entry_prevkey (prevkey) REFERENCES a2_entry (id) ON DELETE NO ACTION ON UPDATE CASCADE ); CREATE TABLE a2_some_doc ( id dintkey, /* Мы больше не ограничиваем структуру двумя уровнями вложенности шапка-позиция. Документ может быть сложным с неограниченным количеством уровней вложенности. upkey -- ссылка на таблицу верхнего уровня. */ masterkey dforeignkey, /* Следующие поля необязательны. Разработчик сам решает будут они присутствовать в конкретном документе или нет. */ [docnumber ddocnumber,] [docorder dinteger,] [creationdate dcreationdate,] [creatorkey dcreatorkey,] [editiondate deditiondate,] [editorkey deditorkey,] [aview dsecurity,] [achag dsecurity,] [afull dsecurity,] /* Поля документа, содержащие объект, признаки, значения. */ [attr1] ... [attrn] );
[править] Пример использования
CREATE TABLE