powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Не разберусь ни как
12 сообщений из 12, страница 1 из 1
Не разберусь ни как
    #32591602
S1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
S1
Гость
Ребят, подскажите как организовать проводку.
Хоз. Операция - перемещение товара.
Думаю так: (похоже неправильно)
Создаю таблицу, а-ля план счетов.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 --------------------------------------
 
ID_PLAN
Parent
id_subconto
Name
More
 --------------------------------------
 
где [ID_PLAN] - первичный ключ,
[Parent] - указатель на родителя ([ID_PLAN]),
[id_subconto] - указатель на таблицу аналитики для данного счета,
[Name] - название счета,
[More] - дополнительная информация.

Далее делаем таблицу проводок:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 --------------------------------------
 
ID_OPER
id_db
id_cr
id_goods
id_doc
id_employees
Date
Summ
 --------------------------------------
 
ID_OPER - ключ
id_db - указатель на дебетовый счет в плане счетов (ID_PLAN)
id_cr - указатель на кредетовый счет в плане счетов (ID_PLAN)
id_goods - указатель на товар
id_doc - указатель на документ
id_employees - указатель на сотрудника, через кого был перемещен товар
Date - дата проводки
Summ - сумма проводки

Тогда возникает вопрос:
Допустим нужно оприходовать товар на склад.
В таблице проводок пишем в поле id_db указатель на счет склады в таблице детали проводки номер аналитики. В поле id_cr указатель на счет контрагента, от кого пришел товар.
Но на склад товар может прийти и с другого склада и вообще откуда угодно, а это уже совсем другая аналитика.
Отсюда вывод: что одно поле таблицы проводок связано с несколькими таблицами. А ЭТО НЕПРАВИЛЬНО !!!
Подскажите, как сделать правильно.
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32592281
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй наследование

1. Определи абстрактного субъекта - это будет таблица Subjects
ID - identity
Name -
Type - "Abstract"

2. Определи наследников - склад, контрагент и т.д.

ID - внешний ключ на Subjects.ID
доп. параметры, а в таблице Subjects в поле Type пиши тип "Sklad", "Agent"

можно сделать вьюхи, в результате в таблицу операций всегда будешь подставлять Subjects.ID
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32592530
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ID_OPER - ключ
id_db - указатель на дебетовый счет в плане счетов (ID_PLAN)
id_cr - указатель на кредетовый счет в плане счетов (ID_PLAN)
id_goods - указатель на товар
id_doc - указатель на документ
id_employees - указатель на сотрудника, через кого был перемещен товар
Date - дата проводки
Summ - сумма проводки

id_goods - указатель на товар
id_employees - указатель на сотрудника, через кого был перемещен товар

-вообще-то это аналитика счета. Соответсвенно я бы стал делать приблизительно по следующей схеме:
в самой проводке Id_an_hash - ссылка на таблицу аналитик счетов, которая состоит из
таблицы: subconto
id_subconto
name
ID_PLAN
и есче одной таблицы: sp_subconto
w_table_kod - содержит кода, наименования таблиц, учавствующих в аналитике
id_in_table - содержит id записи в указанной таблице.
Ну и есче одна таблица sp_subconto_nastr - аналогичная предыдущей для настройки слоев аналитики конкретного счета.
Плюсы - возможность иметь произвольное количество аналитик по проводкам,
таблица проводок становиться более универсальна.
Минусы - системка получаеться потяжелее, и придеться писать вьюшки выбора
записей по произвольной таблице, в зависимости от кода таблицы, соответсвенно потребуеться некоторая универсальность во всех таблицах, допустимых к участию в аналитике.
Т.Е. как минимум, одинаковые наименования полей, хранящих ID записи, NAME записи.
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32593919
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо перестроить структуру таблиц у Хоз.операций
1.
id_х.о
№ х.о
Дата х.о
Док. основание
От кого (Справочник контрагентов)
Кому (Справочник контрагентов)
Примечание
Сумма х.о.

2.
№ пп
id_х.о
Дт (Справочник План счетов)
Аналитика 1 уровня (справочник ...
Аналитика 2 уровня (справочник ...
Аналитика 3 уровня (справочник ...
Кт (Справочник План счетов)
Аналитика 1 уровня (справочник ...
Аналитика 2 уровня (справочник ...
Аналитика 3 уровня (справочник ...
Номенклатура (справочник Номеклатура)
Кол-во
Сумма
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32594233
Николай МВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nik прав, добавь таблицу Агентов, от нее никуда не денешься.

А в проводки добавь поля "Кому" "От кого"
--------------------------------------
ID_OPER
id_db
id_cr
id_goods
id_doc
id_employees
Date
Summ
+
id_agent_db --кому
id_agent_cr --от кого
--------------------------------------

Непонятливый тоже прав, со временем поймешь, что для каждой проводки аналитику надо хранить в отдельно, иначе через пару лет таблица проводок (а она самая большая окажется) будет содержать 50-100 полей.
Но не увлекайся сразу аналитикой. Основные свойства проводки оставь -- дебет, кредит, кому, от кого, товар, кол-во, цена, сумма, дата. По ним будет много работы и они всегда будут заполнены.

DIGITALPRO тоже прав, разбей проводки на две таблицы "Документы", "Проводки". Только зря он столько аналитики в т.2 (проводки) пихает -- всю все равно не впихнет. :) И в т. 1 (документы) в общем-то необязательно указывать агентов -- они есть в проводках.
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32595809
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FROM Николай МВ

По поводу Аналитики: у нас на предприятии ведется по 3 уровням, в программе зашито 5

По поводу агентов: глупо использовать контрагентов в проводках моного получается лишнего, следовательно раздувается (пусть не сильно) база
Пример: перемешение ТМЦ от одного работника к другому 10 наименований
в моем варианте будет всего 1 запись от кого к кому в Вашем 10

В данной структуре Хоз.опериции и Хоз операции детализация (один ко многим) не надо ни какого субконто!!!
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32596009
Николай МВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 DIGITALPRO
Насчет аналитики -- у Вас вполне нормальный вариант. Если хватает, то вполне достаточно. Мне когда-то очень не хватало дополнительной таблицы. :)

По поводу агентов: глупо использовать контрагентов в проводках моного получается лишнего, следовательно раздувается (пусть не сильно) база Пример: перемещение ТМЦ от одного работника к другому 10 наименований
в моем варианте будет всего 1 запись от кого к кому в Вашем 10


А вот здесь я не совсем понял.
Документы: одна запись обязательно.
Проводки 10 записей обязательно (ведь 10 наименований)
Что Вы имели в виду?

В данной структуре Хоз.опериции и Хоз операции детализация (один ко многим) не надо ни какого субконто!!!

Это что значит?
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32596780
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FROM Николай МВ

Еще раз про контрагентов, просто я предлагаю их делать в 1-й таб. а не во 2-й

По поводу аналитики, сколько бы ее небыло 1-2-...-5 нужна всего одна таблица

По поводу 1 и 2 таб. я подразумевал
1- Хоз.операция
2- Хоз.операция детализация (ну или проводки)
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32597150
Николай МВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 DIGITALPRO:

Еще раз про контрагентов, просто я предлагаю их делать в 1-й таб. а не во 2-й

У меня контрагенты = агенты, для краткости. :)

Часто появляются варианты, когда агенты должны быть только в т.2.

Вариант 1:
Документ один, а движений в нем несколько:
Приходная накладная
чайник, 10 шт. от кого: Завод чайников, кому: фирма "Чайник"
чайник, 10 шт. от кого: фирма "Чайник", кому: фирменный магазин

Поясняю: фирменный магазин берет у фирмы товары на комиссию. Физически 10 чайников в фирме может в глаза не видели, однако по бухгалтерии он должен пройти именно так: поставщик->фирма->магазин
И такие цепочки в жизни бывают очень длинные...

Вариант 2:
Документ один, корреспонденты разные:
Перемещение:
чайник, 10 шт. от кого: фирма "Чайник", кому: склад чайников
ложечка, 10 шт. от кого: фирма "Чайник", кому: склад ложечек

Это очень упрощенные примеры из реальной жизни. В реальности документы бывают гораздо сложнее.

По поводу аналитики, сколько бы ее небыло 1-2-...-5 нужна всего одна таблица.

т.2 у меня очень большая, постоянно растет и работа с ней очень интенсивная. Каждое новое поле для меня -- тормоза и скачок объема. Плюс иногда бывают проводки с 5-10 аналитиками/параметрами и никак не меньше. Но гораздо чаще бывают проводки с 1-2 аналитиками/параметрами. Держать 10 полей из-за 10% проводок я не могу себе позволить.

Для Ваших задач достаточно одной таблицы, для моих нужно две. Мы оба правы. :)
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32597278
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай МВ

Извините конечно не это ... :))

Код: plaintext
1.
2.
Приходная накладная
чайник,  10  шт. от кого: Завод чайников, кому: фирма "Чайник"
чайник,  10  шт. от кого: фирма "Чайник", кому: фирменный магазин

Это два документа т.е. приходная накладная, и расходная накладная в подразделение (внутр. перемещение) Каждый документ должен проводится в бух.учете разными ХО т.е. пошел по документу и посмотрел какие там проводки или на оборот

По поводу перемещения так там у Вас тоже 2 документа

По поводу 10 аналик, приведите пример что то не смог себе представить!?
10% - это на мое усмотрение не так уж и мало
Скачек объема из-за Null будет будет незначительный
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32597448
Николай МВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это два документа... там у Вас тоже 2 документа

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

Я полтора года назад работал на предприятии где в одной комнате находилось около 15 фирм! Путешествия товаров были невероятно сложными! Однако все прекрасно работало. :)

Конечно по Вашей схеме тоже можно работать: автоматически генерировать дополнительные документы, автоматически обновлять в них данные при изменении одного, скрывать лишние документы, чтобы не усложнять работу пользователя, изменить правила формирования документа так, чтобы они затрагивали не только содержимое документа, но и содержимое связанных документов... и т.д. Все это можно реализовать.

Можно и так и так: мы опять оба правы! :)

По поводу 10 аналик, приведите пример что то не смог себе представить!?
10% - это на мое усмотрение не так уж и мало


Хоть убей не помню, два года прошло. Помню, что пытался втиснуться в существующие 6-7 дополнительных полей, как-то справлялся, но теперь вспоминаю как страшный детский сон... :)

Скачек объема из-за Null будет будет незначительный

Ну как Вам сказать, я вот только что для эксперимента в одну небольшую табличку добавил поле int (4 байта).
Размер не изменился. Везде NULL.
Изменил сто строчек. Реально добавилось 4*100=400 байт = 0.4 кб
Размер таблицы увеличился на 8 кб.
Изменил еще 100 строчек. Реально добавилось 0.4 кб
Размер таблицы увеличился на 16 кб.
Изменил еще 100 строчек. Реально добавилось 0.4 кб
Размер таблицы увеличился на 8 кб.
Итого: реальные данные: 1.2 кБ -- увеличение таблицы: 32 кб

Предлагаю закончить спор об аналитике: мне удобно так, Вам удобно иначе. Нельзя сказать, что у кого-то неправильно .
И так и так можно построить очень хорошую систему.
...
Рейтинг: 0 / 0
Не разберусь ни как
    #32597566
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай МВ

ОК :))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Не разберусь ни как
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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