|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Всем доброго дня, столкнулся с тем что в каждой конторе свой набор полей. Существует какой то паттерн на эти таблицы? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 18:24 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
EAV, но ты его не осилишь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 18:26 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov EAV, но ты его не осилишь. А ссылочку или расшифровку можно? Я бы попробовал, а то гугл на это сокращение ничего на выдаёт подходящего. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 18:36 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
https://www.google.com/search?q=database design EAV Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 18:39 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Спасибо. Судя по этой статье EAV предполагает проблемы с производительностью. Хотя если таблицу объектов дополнить полями которые встречаются во всех сущностях и как правило участвующих в поиске можно частично решить проблему производительности в моём случае. (Имею ввиду поля типа номер документа, дата, сумма, количество ...) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 19:36 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
hlopotunEAV предполагает проблемы с производительностью. Только в кривых руках. Я же сказал: ниасилишь. PS: EAV идеально вписывается в концепцию ORM и прочего MVC. И наоборот - совершенно не вписывается в TDBGrid. И те, кто пытается её прогнуть под грид - пишут такие вот статьи. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 21:58 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
hlopotun, базовая структура хоть одинаковая? Может, там только дополнительные столбцы отличаются? А то вдруг пытаешься бухгалтерию со складом скрестить... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 22:27 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
hlopotun Всем доброго дня, столкнулся с тем что в каждой конторе свой набор полей. Существует какой то паттерн на эти таблицы? Спасибо. Знаю человека, который обслуживает несколько контор, для каждой конторы - свой проект. Не жалуется. У нас - вариант EAV. Все равно, каждая контора - свой проект. Да, код ядра один, но плагины, отчеты, документация - для каждой конторы свои. Поначалу было геморно, но все уже заточено. Ещё видел вариант, когда код ядра один, но схема базы разная, при этом в базе ведется словарь, отвечающий ха правила отображения, разграничения, и т.п. Т.е., таблички создаются на лету, как в EAV, но - таблички реальные, физические. Имхо, тут проблем, связанных с EAV, меньше. Ядро, при запуске, на основе словаря, показывает доступные данному пользователю справочники, поля, действия. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 04:27 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Если для бухгалтерии, то обычно делается каталог плана счетов, каталог самих счетов, таблица проводок. Планы счетов id name1001 Бух. учёт1002 Нал. учёт Код аналитики обозначает сущность например 1 - контрагент, 2 - договор, 3 - накладная/акт. Счета id plan acc name analitcode1 analitcode2 analitcode3 analitcode4 analitcode5 analitcode6123123 1001 60.2 РАСЧЕТЫ С ПОСТАВЩИКАМИ И ПОДРЯДЧИКАМИ 1 2 3 null null null123124 1001 62.2 РАСЧЕТЫ С ПОКУПАТЕЛЯМИ И ЗАКАЗЧИКАМИ 1 2 3 null null null Проводки id date accd analitcoded1 analitvalued1 analitcoded2 analitvalued2 analitcoded3 analitvalued3 ... acck analitcodek1 analitvaluek1 analitcodek2 analitvaluek2 analitcodek3 analitvaluek3 ...566765 05.07.2021 123123 1 org_id 2 contr_id 3 doc_id ... Для ускорения работы делают денормализацию и хранят № счетов в проводках, чтобы можно было делать запросы like '60.1%' ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 06:45 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
istrebitel Если для бухгалтерии, то обычно делается каталог плана счетов, каталог самих счетов, таблица проводок. Планы счетов id name1001 Бух. учёт1002 Нал. учёт План счетов устанавливается государством или над-государственными органами. Его структура проста: 1. Номер счёта; 2. Наименование счёта. 3. Номер основного счёта (только для субсчетов) Можно добавить поле для комментариев. Предприятие может, следуя рекомендациям, вводить свои субсчета. Аналогично, государство устанавливает корреспонденцию счетов: 1. Дебет-счёт; 2. Кредит-счёт. Может быть добавлено поле для комментариев. Предприятие может добавить свои проводки для субсчетов и ограничить использование установленных государством корреспондирующих счетов. Поэтому, можно добавить логическое поле, как флаг допускающий/запрещающий конкретный вид проводок на данном предприятии. Можно поступить иначе, введя дополнительную таблицу допустимых видов проводок для данного предприятия, эта таблица будет простым подмножеством корреспонденций, плюс проводки по субсчетам. Далее, есть типы документов, которые подлежат бухгалтерскому/налоговому учёту. Перечень этих типов документов может меняться. Есть документы, подлежащие учёту, и позиции этих документов. Типы документов: 1. Обозначение типа документа; 2. Название типа документа. Документы: 1. Идентификатор документа: 2. Тип документа 3. Номер документа; 4. Дата документа; 5. Организация источник документа; 6. Основание документа; 7. Сумма по документу; 8. Сумма с учётом налогов; 9. ... Позиции документов: 1. Идентификатор позиции; 2. Ссылка на документ; 3. Номер позиции в документе; 4. Содержание позиции (например, наименование материалов); 5. Количество; 6. Цена; 7. Сумма; 8. Общая сумма с учётом налогов; 9. ... Далее необходимо учитывать налоги, которых может быть много, и ставки которых меняются со временем. Какие-то налоги могут отменять, какие-то вводить. Виды налогов: 1. Идентификатор налога; 2. Обозначение налога; 3. Название налога; 4. Дата введения; 5. Дата отмены; 6. Описание. Ставки по налогам: 1. Идентификатор ставки; 2. Ссылка на вид налога: 3. Размер ставки в %; 4. Размер ставки (номинальный); 5. Описание. Налоги по документам: 1. Ссылка на документ; 2. Ссылка на ставку налога; 3. Сумма налога; 4. Обоснование. Налоги по позиции документов: 1. Ссылка на позицию; 2. Ссылка на ставку налога; 3. Сумма налога; 4. Обоснование. Над этой первичной информацией настраиваются разного рода аналитические блоки, которые решают различные частные задачи учёта. istrebitel Код аналитики обозначает сущность например 1 - контрагент, 2 - договор, 3 - накладная/акт. Счета id plan acc name analitcode1 analitcode2 analitcode3 analitcode4 analitcode5 analitcode6123123 1001 60.2 РАСЧЕТЫ С ПОСТАВЩИКАМИ И ПОДРЯДЧИКАМИ 1 2 3 null null null123124 1001 62.2 РАСЧЕТЫ С ПОКУПАТЕЛЯМИ И ЗАКАЗЧИКАМИ 1 2 3 null null null Проводки id date accd analitcoded1 analitvalued1 analitcoded2 analitvalued2 analitcoded3 analitvalued3 ... acck analitcodek1 analitvaluek1 analitcodek2 analitvaluek2 analitcodek3 analitvaluek3 ...566765 05.07.2021 123123 1 org_id 2 contr_id 3 doc_id ... Для ускорения работы делают денормализацию и хранят № счетов в проводках, чтобы можно было делать запросы like '60.1%' Не надо делать денормализацию... Это плохо сказывается в последствии, IMHO. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 12:38 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Самое главное, как всегда... забыл :) Таблица проводок: 1. Дебетовый счёт; 2. Кредитовый счёт; 3. Ссылка на позицию документа; 4. Сумма проводки; 5. Исполнитель проводки; 6. Дата и время проводки. Дебетовый и кредитовый счета - это ссылка на таблицу корреспонденции счетов. Первичный (уникальный) ключ составляют первые три поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 15:14 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
05.07.2021 15:14, bum_bum пишет: > Первичный (уникальный) ключ составляют первые три поля. не надо так делать Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 15:23 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Мимопроходящий 05.07.2021 15:14, bum_bum пишет: > Первичный (уникальный) ключ составляют первые три поля. не надо так делать Почему? Установка партии? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:33 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Как минимум - это мешает по одной позиции сделать две проводки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:36 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Как минимум - это мешает по одной позиции сделать две проводки. А если подумать?... Можно сделать любое количество проводок, по разным парам дебет-кредит. А вот по одной и той же паре, сделать более одной проводки позиции документа на самом деле нельзя. Это ограничение придумано не мной. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:44 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
05.07.2021 17:33, bum_bum пишет: > > Почему? Установка партии? не нужно делать составной первичный ключ из трех полей. на него же потом внешние ключи накладывать предстоит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:49 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Мимопроходящий 05.07.2021 17:33, bum_bum пишет: > > Почему? Установка партии? не нужно делать составной первичный ключ из трех полей. на него же потом внешние ключи накладывать предстоит. Так это весьма удобно и информативно. К тому же я указал, что можно не первичный ключ, если религия запрещает, но ограничение уникальности всё равно делать надо. Плодить или не плодить ограничения - выбор каждого. Споры о суррогатных ключах - давняя история, и каждый волен решать для себя сам, что использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 17:55 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
05.07.2021 17:55, bum_bum пишет: > > Так это весьма удобно и информативно. это заи@аться при написании JOIN-ов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:00 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Мимопроходящий 05.07.2021 17:55, bum_bum пишет: > > Так это весьма удобно и информативно. это заи@аться при написании JOIN-ов. Во-первых, потребность в JOIN резко сокращается, во-вторых, есть USING. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:05 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
05.07.2021 18:05, bum_bum пишет: > Во-первых, потребность в JOIN резко сокращается уже смешно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:09 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Мимопроходящий 05.07.2021 18:05, bum_bum пишет: > Во-первых, потребность в JOIN резко сокращается уже смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:10 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
bum_bum, > Во-первых, потребность в JOIN резко сокращается, во-вторых, есть USING. это за счёт чего же она сокращается? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:21 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Симонов Денис bum_bum, > Во-первых, потребность в JOIN резко сокращается, во-вторых, есть USING. это за счёт чего же она сокращается? Ну, представьте, что нам нужно сформировать "главную книгу" или "книгу продаж"... В предложенной модели, мы просто проходим по таблице проводок и всё, никаких соединений делать не надо. Если же таблицы имеют суррогатные ключи, то надо соединяться с таблицей Счетов, чтобы выбирать только те счета, которые нужны. По ID счёта невозможно сказать, какой счёт за ним стоит, да, и про сам ID, пользователи ничего не знают. И это касается практически всей бухгалтерской аналитики. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:32 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
Ого, борцы за естественные ключи. Начало очередного цикла Швабе-Вольфа. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:43 |
|
Шаблон таблицы счетов и таблицы позиций
|
|||
---|---|---|---|
#18+
bum_bum> За счёт того, что не надо соединяться с первичными таблицами, bum_bum> чтобы разыменовывать каждое поле внешнего ключа. Когда нужно только разыменовывание - возможно. Но как только понадобится всё остальное - уже неудобно. Я как раз щас имею дело с одной такой БД, в которой ПК - это varchar (при чём 1 поле, а не три). Не сказал бы, что это очень удобно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 18:55 |
|
|
start [/forum/topic.php?fid=40&fpage=5&tid=1559992]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 166ms |
0 / 0 |