powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
25 сообщений из 99, страница 3 из 4
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35648156
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
guest_20040621
Ну вот смотрите: в этом обсуждении раз сто было сказано: проектирование структуры данных для соревнований - только посредством регламента. И что? Соседний тред - хочу базу данных для футбольной статистики.
Во-первых, автор темы про футбол наверняка не читал этот топик. Я бы то же на его месте не читал. Поставщики и потребители как-то слабо соотносятся с футбольной статистикой которую он пишет.

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

Впрочем, это тоже офтоп, как и футбол или вагоны в данней теме.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35648456
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Во-первых, автор темы про футбол наверняка не читал этот топик.

Поиск придумали дебилы для дебилов. Нормальные пацаны не любят читать, они любят писать. Я правильно понял вашу мысль?

> Во-вторых, он пишет не базу для соревнований, а базу, охватывающую множество различных соревнований, каждое из которых
> может иметь свой регламент.

Это ничего не меняет.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35648738
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreiКrНо как-то слишком сложно... Вы учтите, что человек, задавший вопрос только учится проектировать БД
Простейший неидеальный пример для чайников. Берем для примера поставщиков. Вводим понятие реестра поставщиков. В нем только ссылки на субъектов (справочник субъектов один на всех), которые могут быть поставщиками. Далее в реестре поставщиков добавляем "обвески" типа "блокирован", "сертифицирован", "разрешен", "минимальный срок поставки" и т.п. Эти признаки влияют только на использование субъекта как поставщика. Например, если блокирован поставщик, то он блокирован только как поставщик, но не как субъект в целом. Так понятнее будет? Аналогично делается реестр покупателей, реестр банков (впрочем, с банками все сильно сложнее ввиду наличия разнородных справочников типа БИК/BLZ и т.п., имеющих разную, подчас идиотскую, структуру) и т.п. Визуально это может быть отдельная закладка в справочнике субъектов на каждый реестр, а может быть отдельный справочник на каждый реестр, с точки зрения структуры БД это без разницы. На каждый реестр пишется регламент. Например, по умолчанию запись в реестр добавляется без признака "разрешен" и необходима процедура визирования. Или регламент блокировки записи в реестре. И т.д.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35650446
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Сергей Васкецов

Т.е. уходим от варианта использования операций (или, как некоторые выражаются, ролей), как то поставка, приобретение, передача в собственность и т.д. и возвращаемся к схеме в которой есть единый справочник субъектов хоз. деятельности (контрагентов), окруженный связанными с ним таблицами Поставщики, Покупатели, Дарители и т.д. В каждой из таких таблиц обязательно присутствует поле - ссылка на единый справочник контрагентов и поля, специфичные для данной операции (выделены синим цветом).

Таблица Контрагенты :

Код - Название - Адрес
1 - Автозавод - Москва
2 - Тепловозостроительный завод - Луганск
3 - Молокозавод - Ярославль
...

Таблица Поставщики :

"Свой" код - "Чужой" код - Срок поставки - Тип тары
1 - 2 - 10 дней - ящик
1 - 3 - 1 день - бутыль
...

Таблица Покупатели :

"Свой" код - "Чужой" код - Место разгрузки
2 - 3 - склад
3 - 1 - оффис
...

Напомню, что данная схема учитывает возможность ведения учета по нескольким предприятиям .
"Свой" код и "Чужой" код - в соответствии со справочником Контрагентов
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35650727
KOT MATPOCKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В очередной раз спрашиваю:
зачем поставщики и покупатели разделены?
Не пойму.
Чего-то недоговариваете.
Я бы еще понял разделение на возможные поставщики и возможные покупатели, чтобы как бы показать у кого, например, есть договорные отношения на поставку/преобретение чего-либо.

А разделять сущности на поставщиков и покупателей при учете фактически произошедших транзакций.... Не понимаю
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35650731
KOT MATPOCKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kordaТаблица Поставщики :

"Свой" код - "Чужой" код - Срок поставки - Тип тары
1 - 2 - 10 дней - ящик
1 - 3 - 1 день - бутыль
...

Вердикт: таблица названа не правильно!

korda
Таблица Покупатели :

"Свой" код - "Чужой" код - Место разгрузки
2 - 3 - склад
3 - 1 - оффис
...

Вердикт: таблица названа не правильно!
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35652412
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KOT MATPOCKuH, Поставщики имеют атрибуты, отличные от Покупателей. Поставщик, например, может быть сертифицирован (об этом говорилось выше), а для Покупателя этот атрибут не имеет смысла. В силу этой причины разносим их по разным таблицам, тем не менее, поместив общие атрибуты в таблицу Контрагенты.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35653574
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kordaНапомню, что данная схема учитывает возможность ведения учета по нескольким предприятиям
Позволю себе остаться при своем незыблемом мнении, и Вам его практически навязываю, что корректная реализация " возможности ведения учета по нескольким предприятиям " в рамках одной БД реализуется прежде всего начиная с системы разграничения прав доступа, а не подобными костылями в виде кросс-таблиц. Поэтому в рамках данного топика обсуждать множество юрлиц в одной БД вообще бессмысленно, и акцентировать внимание на этом не стоит.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35655256
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
kordaПоставщики имеют атрибуты, отличные от Покупателей.
Не так уж их много, отличных, а дисковое пространство ныне дешево и не страшно, что часть атрибутов будет незадействовано. Зато дорого обходиться время разработки. И писать два комплекта практически одинаковых запросов, хранимок, вьюх и тригеров занимает в два раза больше времени и чревато в два раза большим количеством ошибок.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35655513
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей ВаскецовkordaНапомню, что данная схема учитывает возможность ведения учета по нескольким предприятиям
Позволю себе остаться при своем незыблемом мнении, и Вам его практически навязываю, что корректная реализация " возможности ведения учета по нескольким предприятиям " в рамках одной БД реализуется прежде всего начиная с системы разграничения прав доступа, а не подобными костылями в виде кросс-таблиц. Поэтому в рамках данного топика обсуждать множество юрлиц в одной БД вообще бессмысленно, и акцентировать внимание на этом не стоит.

Вы имеете ввиду, что желательно строить для каждого из предприятий отдельную схему, давать права доступа на объекты каждой из схем соответствующим пользователям, т.е. грубо говоря создавать несколько логических баз данных в рамках одной физической. Это Вы хотели сказать?
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35655529
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2kordaПоставщики имеют атрибуты, отличные от Покупателей.
Не так уж их много, отличных, а дисковое пространство ныне дешево и не страшно, что часть атрибутов будет незадействовано. Зато дорого обходиться время разработки. И писать два комплекта практически одинаковых запросов, хранимок, вьюх и тригеров занимает в два раза больше времени и чревато в два раза большим количеством ошибок.

Данный вопрос обсуждался здесь (пример с беременными мужчинами). Лично я склоняюсь к мнению, что не должно быть в таблице незадействованных полей. По крайней мере, нужно по возможности избегать этого.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35655634
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
kordaЛично я склоняюсь к мнению, что не должно быть в таблице незадействованных полей. По крайней мере, нужно по возможности избегать этого.
Лично я считаю, что уменьшение количества таблиц более важно, чем наличие незадействованых полей.

При этом я руководствуюсь:
Edgar Coddправило 1: Явное представление данных (The Information Rule):
Информация должна быть представлена в виде данных, хранящихся в ячейках.
Данные, хранящиеся в ячейках, должны быть атомарны. Порядок строк в реляционной таблице не должен влиять на смысл данных.


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

Что также по духу противоречит:

Edgar Coddправило 4: Доступ к словарю данных в терминах реляционной модели (Active On-Line Catalog Based on the Relational Model):
Словарь данных должен сохраняться в форме реляционных таблиц , и СУБД должна поддерживать доступ к нему при помощи стандартных языковых средств, тех же самых, которые используются для работы с реляционными таблицами, содержащими пользовательские данные.


=========
Но, конечно, незадействованых ячеек избегать надо :)
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35655679
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2получается, что часть информации о базе хранится в голове разработчика, а не в ячейках.


?
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35657141
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2kordaПоставщики имеют атрибуты, отличные от Покупателей.
Не так уж их много, отличных
Не стоит обобщать. Бывают и другие задачи, кроме учета. Посмотрел в одной из наших баз.
Таблицы Поставщики и Покупатели - более 20 своих полей у каждой.
Кроме того Поставщики связаны с десятью другими таблицами, а Покупатели с двадцатью.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35658837
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Таблицы Поставщики и Покупатели - более 20 своих полей у каждой.

Отправьте ее на конкурс кривых поделок. Если не первый приз, то место в тройке призеров обеспечено.

Не бывает у них разных атрибутов. По определению.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35659357
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Не бывает у них разных атрибутов. По определению.
Просто у нас с Вами разные определения Поставщиков и Покупателей
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35659708
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Просто у нас с Вами разные определения Поставщиков и Покупателей

Уважаемый, ничего разного здесь быть не может. Опять же по определению. Есть одноразовые поделки обкуренных китайских первоклассников, которые понятия не имеют о российском законодательстве, и есть структуры данных.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35662040
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621 , Чуть подробнее про обкуренных китайских первоклассников можно?))
Вы имеете ввиду, что поставщики и потребители должны иметь один и тот же набор атрибутов вследствие того, что логика взаимодействия системы с Потребителем и Поставщиком должна быть одинакова в принципе?
Потребитель: потребляет Товар - поставляет Деньги
Поставщик: потребляет Деньги - поставляет Товар
Получается, что Потребитель и Поставщик симметричны, собственно, как симметричны и то, чем они обмениваются - Деньги и Товар.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35662285
andreych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробежал тему наискось, может и не заметил, поправте если что.
Контрагент, в данном случае это некая организация или чп, может в одном случае быть поставщиком, в другом покупателем. Но как контрагент он у нас вводится один раз в таблицу контрагенты
Тбл. контрагенты
ID
Наименование.
ИНН... и т.д.
Но нам его нужно разделить. Вводим еще одну таблицу, расчеты с контрагентами или лицевые счета контрагентов кому как нравится
Тбл. Лицевые
ID
Номер ЛС
Тип лицевого - закупка или поставка (с нашей стороны)
ID контрагента
Сумма закупки - можно разделить с ндс без ндс
Сумма поставки - тоже самое.
Ну и так далее
Все больше ничего не нужно. К этим ЛС можно визать документы, по ним можно строить отчеты в общем ограничены только возможностями и знаниями SQL.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35662367
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreychрасчеты с контрагентами или лицевые счета контрагентов кому как нравится
Никак не нравится. Чтобы платежные реквизиты стали лицевыми счетами, необходимо, чтобы дело происходило в банке, к тому же "лицевой счет" - сильно обобщенное понятие. А уж "расчеты с контрагентами" вообще не в тему, это никакие не расчеты. Можете назвать "расчетные счета", это более нейтрально и корректно, если не вдаваться в дебри SWIFT и его форматов, хотите - добавьте прилагательное "банковский" в сответствующем числе и падеже.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35662402
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kordaлогика взаимодействия системы с Потребителем и Поставщиком должна быть одинакова в принципе?
Так не бывает в принципе. Бизнес-логика взаимодействия с поставщиками и покупателями всегда разная. Соответственно, насколько эта бизнес-логика (в части объектов, их структур и взаимосвязей) отражена в структуре БД, настолько используемая структура БД должна отличаться в части поставщиков и покупателей. Если исходить из того, что любой покупатель в любой момент теоретически может стать поставщиком, то тогда просто остаются некоторые неиспользуемые атрибуты. Если исходить из той крайности, что любые атрибуты можно натянуть на EAV, тогда это уже другой коленкор (см. 3-е предложение выше).

Можете предложить свой вариант атрибута, который есть только у поставщика или только у покупателя, а guest Вам скажет, почему Вы обгадились (используя оригинальную терминологию). Впрочем, строго доказать это для любого атрибута вряд ли представляется возможным, особенно с учетом того, что могут быть некие уникальные атрибуты, связанные со спецификой конкретного предприятия.

kordaсимметричны и то, чем они обмениваются - Деньги и Товар.
Это глупость. Симметричны они могут быть (или не быть) только в рамках конкретных договорных отношений как некие обязательства. Например, в случае договора цессии ни о какой симметрии вообще речи быть не может. Аналогично в случае договора дарения,...
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35662602
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов Бизнес-логика взаимодействия с поставщиками и покупателями всегда разная. Соответственно, насколько эта бизнес-логика (в части объектов, их структур и взаимосвязей) отражена в структуре БД, настолько используемая структура БД должна отличаться в части поставщиков и покупателей. Если исходить из того, что любой покупатель в любой момент теоретически может стать поставщиком, то тогда просто остаются некоторые неиспользуемые атрибуты.

Можете предложить свой вариант атрибута, который есть только у поставщика или только у покупателя, а guest Вам скажет, почему Вы обгадились (используя оригинальную терминологию). Впрочем, строго доказать это для любого атрибута вряд ли представляется возможным, особенно с учетом того, что могут быть некие уникальные атрибуты, связанные со спецификой конкретного предприятия.
Именно. Специфика существует и она влияет на структуру БД. В нашем случае, есть, например, такой атрибут - прайс-лист, который есть у Поставщика и отсутствует у Покупателя.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35662607
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stiВ нашем случае, есть, например, такой атрибут - прайс-лист, который есть у Поставщика и отсутствует у Покупателя.
Ошибаетесь. Прайс-лист есть и для покупателей, и для поставщиков. Просто по одним прайс-листам продают, а по другим покупают.
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35662689
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовstiВ нашем случае, есть, например, такой атрибут - прайс-лист, который есть у Поставщика и отсутствует у Покупателя.
Ошибаетесь. Прайс-лист есть и для покупателей, и для поставщиков. Просто по одним прайс-листам продают, а по другим покупают.
У Поставщика есть прайс-лист, по которому покупают Покупатели (упрощенно).
...
Рейтинг: 0 / 0
Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
    #35662933
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stiУ Поставщика есть прайс-лист, по которому покупают Покупатели (упрощенно).
А у Покупателя есть прайс-лист, по которому продают Поставщики (не менее упрощенно). Если не вдаваться в тонкости ценообразования, ибо сейчас это просто неважно, кто и как формирует прайс-лист, то сам по себе прайс-лист (как перечень актуальных цен на позиции номенклатуры для определенной группы контрагентов) применим как при продажах, так и при покупках. Что тут можно еще обсуждать?
...
Рейтинг: 0 / 0
25 сообщений из 99, страница 3 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поставшики могут быть потребителями и наоборот. Как правильно задать схему данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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