powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сущности
66 сообщений из 66, показаны все 3 страниц
Сущности
    #38929579
vladka63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте )

Подскажите пожалуйста.

Продаем стулья, апельсины и билеты в кино - т.е - это все товар.
Правильно ли весь этот товар хранить в одной таблице базы или это считаются разные сущности?

Спасибо.
...
Рейтинг: 0 / 0
Сущности
    #38929589
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladka63Здравствуйте )

Подскажите пожалуйста.

Продаем стулья, апельсины и билеты в кино - т.е - это все товар.
Правильно ли весь этот товар хранить в одной таблице базы или это считаются разные сущности?

Спасибо.
Разберитесь с постановкой задачи. Если просто наименование и цена можно и в одной, а если собираетесь хранить какие то специфические данные по каждому товару или услуге - одной таблицей не обойдешься.
...
Рейтинг: 0 / 0
Сущности
    #38929595
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladka63, все слишком размыто.... нет детальной постановки задачи.
Апельсины могут быть испанскими, мароканскими, египетскими....
...
Рейтинг: 0 / 0
Сущности
    #38929596
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы ответить на этот вопрос, надо проанализировать бизнес-логику приложения и атрибуты этих объектов. Если с ними выполняются одинаковые или похожие операции (продать), они рассматриваются как предметы одной категории (товар), и у них одинаковые или похожие характеристики (название), то правильно хранить в одной таблице. Если у них совсем разные операции, характеристики и так далее - правильно хранить в разных таблицах. Если часть вещей общая, а часть различается - практично выбрать промежуточное решение.
...
Рейтинг: 0 / 0
Сущности
    #38929616
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно ли весь этот товар хранить в одной таблице базы или это считаются разные сущности ?Хранить в одной.
Потому что они будут фигурировать в одних и тех же документах (складских, товарных и пр.).

Могут быть доп. признаки. Но это не причина разносить по разным сущностям.
...
Рейтинг: 0 / 0
Сущности
    #38929908
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продаем стулья, апельсины и билеты в кино - т.е - это все товар.

Билеты в кино -- нифига не товар.


Правильно ли весь этот товар хранить в одной таблице базы или это считаются разные сущности?


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

Знания не наследуются.
...
Рейтинг: 0 / 0
Сущности
    #38929959
vladka63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПродаем стулья, апельсины и билеты в кино - т.е - это все товар.

Билеты в кино -- нифига не товар.


Правильно ли весь этот товар хранить в одной таблице базы или это считаются разные сущности?


В одной таблице БД это не сохранишь.
Но если сохранишь -- то да, можно и нужно даже.

Да, именно так и сделал.
Но советы форума очень помогли в том смысле, что все же есть группа товара, которая, не смотря на то, что товар, тем не менее, имеет специфический функционал (бизнес-логика совершенно иная).
...
Рейтинг: 0 / 0
Сущности
    #38930027
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тем не менее, имеет специфический функционал (бизнес-логика совершенно иная). И что ? Для этого у карточки есть признак. У товаров тоже есть разные признаки, но это не повод делать для каждого типа отдельную таблицу.
...
Рейтинг: 0 / 0
Сущности
    #38930042
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV Для этого у карточки есть признак.

У какой карточки? Какой признак? Не надо путать визуальную часть приложения со структурой БД.
...
Рейтинг: 0 / 0
Сущности
    #38930142
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiLSV Для этого у карточки есть признак.

У какой карточки? Какой признак? Не надо путать визуальную часть приложения со структурой БД.У карточки товара, т.е. у записи в сущности-таблице. У бизнес-сущности (товар/контрагент/пользователь/справочник) в одной из таблиц есть главная запись с ID.

Разные записи могут отличаться признаком: товар/услуга/сырьё/ресурс и пр. Это определяет состав признаков во вспомогательных таблицах. Соотв. определяет внешний вид интерфейса.

Нужно иметь серьезные основания, чтоб создавать отдельную сущность-таблицу.
"Билет в кино" до таких оснований никак не дотягивает. Это товар или услуга.

зы: как-то нестройно получилось объяснить. :(
...
Рейтинг: 0 / 0
Сущности
    #38930163
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> "Билет в кино" до таких оснований никак не дотягивает. Это товар или услуга.

Или акцепт публичной оферты? :)
...
Рейтинг: 0 / 0
Сущности
    #38930164
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНужно иметь серьезные основания, чтоб создавать отдельную сущность-таблицу.


Вот именно- нужно иметь представление о том. что вообще потом с этим собираются делать и делать выводы по каким то обрывкам информации НЕВОЗМОЖНО.

LSV"Билет в кино" до таких оснований никак не дотягивает. Это товар или услуга.
Ды? А например в какой кинотеатр, на какой фильм, на какой сеанс где хранить?

Жутко интересно,что вы сейчас предложите )))
...
Рейтинг: 0 / 0
Сущности
    #38930172
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНужно иметь серьезные основания, чтоб создавать отдельную сущность-таблицу.


Главное основание - это серьезно отличающийся набор операций с сущностью
...
Рейтинг: 0 / 0
Сущности
    #38930218
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiДы? А например в какой кинотеатр, на какой фильм, на какой сеанс где хранить?
Жутко интересно,что вы сейчас предложите )))Для товара всегда есть документы реализации (фиск.чек, расх.накладная и т.п.).
Вот там и указывают и фильм и сеанс и место.
Это если реализовывать на базе готового торгового ПО, например в случае внедрения эдакого единого решения для ТРЦ.

В специализированном "билетном" ПО нет необходимости решать, товар это или ч-л еще.
...
Рейтинг: 0 / 0
Сущности
    #38930237
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVSergueiДы? А например в какой кинотеатр, на какой фильм, на какой сеанс где хранить?
Жутко интересно,что вы сейчас предложите )))Для товара всегда есть документы реализации (фиск.чек, расх.накладная и т.п.).
Вот там и указывают и фильм и сеанс и место.

Вы в кино не ходили никогда, что ли? :)
Цены отличаются в зависимости от сеанса (уж не говоря от кинотеатра) - поэтому это, конечно же, атрибуты товара, а не факта реализации.
...
Рейтинг: 0 / 0
Сущности
    #38930273
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинВы в кино не ходили никогда, что ли? :)
Цены отличаются в зависимости от сеанса (уж не говоря от кинотеатра) - поэтому это, конечно же, атрибуты товара, а не факта реализации.Ой, да ладно ! Капитан очевидность, да ? :)
Какая проблема подтянуть в документ реализации некие условия для формирования цены ?
Может быть вполне достаточно набора цен и коэффициентов у сущности "сеанс".

А еще бывает разная цена в завис. от места, льготные билеты, льготные сеансы, бронирование с доплатой/скидкой и пр.

Конечная цена слабо связана с карточкой товара. Может быть вообще не связана.
...
Рейтинг: 0 / 0
Сущности
    #38930296
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVКот МатроскинВы в кино не ходили никогда, что ли? :)
Цены отличаются в зависимости от сеанса (уж не говоря от кинотеатра) - поэтому это, конечно же, атрибуты товара, а не факта реализации.Ой, да ладно ! Капитан очевидность, да ? :)
Какая проблема подтянуть в документ реализации некие условия для формирования цены ?
Может быть вполне достаточно набора цен и коэффициентов у сущности "сеанс".

Напоминаю, Вы начали с того, что "билеты в кино" - это просто товар, от силы с несколькими дополнительными признаками, никаких дополнительных сущностей не надо.
А сейчас мы видим, что уже всплыла дополнительная сущность "сеанс", у нее наборы цен и коэффициентов - и кто знает, что всплывет еще.
Не такой уж, оказывается, "просто товар"? ;)
...
Рейтинг: 0 / 0
Сущности
    #38930310
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин Напоминаю, Вы начали с того, что "билеты в кино" - это просто товар, от силы с несколькими дополнительными признаками, никаких дополнительных сущностей не надо .
А сейчас мы видим, что уже всплыла дополнительная сущность "сеанс", у нее наборы цен и коэффициентов - и кто знает, что всплывет еще.
Не такой уж, оказывается, "просто товар"? ;)Включил дурачка ?
Мой 5-й сверху пост: "Могут быть доп. признаки".
Эти признаки могут быть где угодно. В куче доп. таблиц.
...
Рейтинг: 0 / 0
Сущности
    #38930333
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVМожет быть вполне достаточно набора цен и коэффициентов у сущности "сеанс".

далеки вы, очень далеки от понимания проблемы... И тут даже не в "сеансе" дело, а в системном подходе к решению проблемы.


LSVЭто если реализовывать на базе готового торгового ПО, например в случае внедрения эдакого единого решения для ТРЦ.
В специализированном "билетном" ПО нет необходимости решать, товар это или ч-л еще.

насколько я понял, вы предлагаете сделать товар или услугу (неважно пока) типа "Билет на сеанс 20:00 в кинотеатре "Синема" на фильм "Унесенные ветром""?
...
Рейтинг: 0 / 0
Сущности
    #38930334
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVКот Матроскин Напоминаю, Вы начали с того, что "билеты в кино" - это просто товар, от силы с несколькими дополнительными признаками, никаких дополнительных сущностей не надо .
А сейчас мы видим, что уже всплыла дополнительная сущность "сеанс", у нее наборы цен и коэффициентов - и кто знает, что всплывет еще.
Не такой уж, оказывается, "просто товар"? ;)Включил дурачка ?
Мой 5-й сверху пост: "Могут быть доп. признаки".


Да-да
LSVНужно иметь серьезные основания, чтоб создавать отдельную сущность-таблицу.
"Билет в кино" до таких оснований никак не дотягивает.
...
Рейтинг: 0 / 0
Сущности
    #38930341
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЭти признаки могут быть где угодно. В куче доп. таблиц.

Бугагага )) Никогда не понимал людей, которые противоречат сами себе.


LSVНужно иметь серьезные основания, чтоб создавать отдельную сущность-таблицу.
"Билет в кино" до таких оснований никак не дотягивает.
...
Рейтинг: 0 / 0
Сущности
    #38930474
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiLSVЭти признаки могут быть где угодно. В куче доп. таблиц.
Бугагага )) Никогда не понимал людей, которые противоречат сами себе.
LSVНужно иметь серьезные основания, чтоб создавать отдельную сущность-таблицу.
"Билет в кино" до таких оснований никак не дотягивает.Юноша, у Вас слишком мало постов, чтоб что-то тут утверждать... :)

Ты видимо перепутал главную таблицу для хранения собственно сущности с ее ID и вспомогательные таблицы.

Например сущность "накладная" может состоять из десятка таблиц: главной таблицы с ID и вспомогательных таблиц (обычно это спецификации).
Только простые сущности могут уложиться в одной таблице.
Некот.таблицы могут хранить данные для совершенно разных сущностей (н-р тот же EAV).

В нашей дискуссии есть проблема с терминами. Вот и всё.
Для начала вспомните стартовый пост и ответьте на его вопрос.
...
Рейтинг: 0 / 0
Сущности
    #38930503
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVТы видимо перепутал главную таблицу для хранения собственно сущности с ее ID и вспомогательные таблицы.
Не знаю кто там чего перепутал, но я с вами чай рюмками не пил. Поэтому оснований "тыкать" нету.


LSVЮноша, у Вас слишком мало постов, чтоб что-то тут утверждать... :)

Обилие ваших постов в разделе "Просто треп" (более 70%), НЕ делает вас большим знатоком баз данных, а отсутствие логики и системности вашего мышления этот эффект только усиливает.

Не вижу профессионального подхода с вашей стороны- поэтому не смею больше комментировать ваши посты. (можно не отвечать на этот пост-он был последним ;) )
...
Рейтинг: 0 / 0
Сущности
    #38930513
Фотография puss_in_boots
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день.

LSVЮноша, у Вас слишком мало постов, чтоб что-то тут утверждать... :)
Дело да же не в постах!
Пож-та прислушайтесь совету окружающих ..
...
Рейтинг: 0 / 0
Сущности
    #38930527
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понял, вы предлагаете сделать товар или услугу (неважно пока) типа "Билет на сеанс 20:00 в кинотеатре "Синема" на фильм "Унесенные ветром""? Вы ничего не поняли. Нет, конечно.
В справочнике "товар" будет всего неск. билетов. Как вариант: Полный билет, детский билет, льготный билет. У них будут внятные названия для чека и некие коэф. для умножения цены.
В документе реализации будет признак "сеанс" со своими коэф. (например с пом. EAV)
При попадании товара в документ согласно коэф. будет формироваться цена. Ряд/место это доп. атрибут строки спецификации (опять таки с пом. EAV).

Также могут сработать к-л настройки скидок для постоянных клиентов, владельцев карт и т.д.

Если типов билетов может быть несколько (н-р в солярий, выставку или аквапарк), то схема усложнится.

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

Нет принципиальных проблем тут же реализовать работу супермаркета, бутика и кафе в одном флаконе.

Речь не идет про специальное билетное ПО.
...
Рейтинг: 0 / 0
Сущности
    #38930580
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVнасколько я понял, вы предлагаете сделать товар или услугу (неважно пока) типа "Билет на сеанс 20:00 в кинотеатре "Синема" на фильм "Унесенные ветром""? Вы ничего не поняли. Нет, конечно.
В справочнике "товар" будет всего неск. билетов. Как вариант: Полный билет, детский билет, льготный билет. У них будут внятные названия для чека и некие коэф. для умножения цены.


"Я тебе умный вэш скажу, толко ты нэ обижайся"(с)
Клиенту нахрен на надо покупать "полный билет" или "детский билет". Если Вы ему покажете каталог с такими позициями, он Вам его засунет в, ээ, деньгоприемник.
Клиент, в массе, хочет купить либо "Билет на Гарри Поттера" [в один из кинотеатров, где он идет], либо "Билет в Ролан" [на один из фильмов, который там идет], либо (имхо реже, но не уверен) "Билет на 22.00" [в один из кинотеатров, где есть такие сеансы, на один из фильмов, которые там идут]. И только потом, когда он определится с этими параметрами, начинаются "полный", "детский" и прочее. И итоговую цену он, собака такая, захочет увидеть до того, как будут созданы какие-то документы о реализации.

Поэтому каталога товара в классическом понимании тут вообще не нужно, а нужен некий кубик с измерениями "Кинотеатр", "Фильм", "Сеанс" (+, возможно, "категория места" и что-то еще). А что будет в чеке - вообще зависит от учетной политики организации (как выше верно отметили, это может быть не товар, а услуга).
...
Рейтинг: 0 / 0
Сущности
    #38930635
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинПоэтому каталога товара в классическом понимании тут вообще не нужно , а нужен некий кубик с измерениями "Кинотеатр", "Фильм", "Сеанс" (+, возможно, "категория места" и что-то еще). А что будет в чеке - вообще зависит от учетной политики организации (как выше верно отметили, это может быть не товар, а услуга).повторю: В специализированном ПО действительно не нужно. Но мы его и не обсуждаем.

Стартовый пост четко упоминает про обычные товары и "билет в кино", т.е. задача реализовать продажу обычных товаров и билетов в кино. Или я не так понял стартовый вопрос ?

В моей схеме я не вижу проблем узнать цены на любые сеансы, т.к. они формируются на пересечении Фильм/сеанс.
Печатается по актуальным фильмам элементарный отчет и вывешивается перед кассой. :)
Более точную цену (с учетом различных скидок, в т.ч. персональных) можно узнать лишь на пересечении ПолитикаСкидок/Фильм/Сеанс.

Схема гибкая и позволяет решить практически любые задачи такого класса.
Некоторые неудобства есть, но они вызваны универсальностью подхода к задаче и минимумом доработок в готовом функционале.

Я предложил вполне рабочую и гибкую схему. Господа оппоненты пока не предложили ничего.
...
Рейтинг: 0 / 0
Сущности
    #38930704
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVСтартовый пост четко упоминает про обычные товары и "билет в кино", т.е. задача реализовать продажу обычных товаров и билетов в кино. Или я не так понял стартовый вопрос ?

Да, обычных товаров и билетов в кино.
И как-то пока получается, что лучше когда "обычные товары" хранятся в одних таблицах по одной схеме, "билеты в кино" - в других по другой.
Вы пытаетесь тот самый вопрос, с которого началась дискуссия "хранить вместе или отдельно?" вынести в данность "Раз это не специализированное ПО, то храним вместе по определению". Это не очень адекватно :)


LSVСхема гибкая и позволяет решить практически любые задачи такого класса.

Практически никакие, Вы хотели сказать ;)
Продавать товар (т.е. выстроить удобное для покупателя предложение) - схема не помогает.
Получать аналитику по продажам - не помогает.
Просто тривиально вести учет чтобы не продать на сеанс билетов больше, чем есть мест в зале - и то не помогает ;)
Что помогает? Печатать чеки.

LSVЯ предложил вполне рабочую и гибкую схему
"гибкость" этой схемы выражается в том что она меняется в каждом сообщении :)
То у Вас "Билеты не дотягивают до того чтобы создать отдельную сущность", то "сущность сеанс".
То "цены формируются в момент попадания в документ на реализацию", то "цены формируются на пересечении Фильм/сеанс".
...
Рейтинг: 0 / 0
Сущности
    #38930831
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Практически никакие, Вы хотели сказать ;)
2. Продавать товар (т.е. выстроить удобное для покупателя предложение) - схема не помогает.
3. Получать аналитику по продажам - не помогает.
4. Просто тривиально вести учет чтобы не продать на сеанс билетов больше, чем есть мест в зале - и то не помогает ;)
Что помогает? Печатать чеки.
...
5.То у Вас "Билеты не дотягивают до того чтобы создать отдельную сущность", то "сущность сеанс".
6. То "цены формируются в момент попадания в документ на реализацию", то "цены формируются на пересечении Фильм/сеанс". 1. Все решает. Ваша не решает, потому что ее нет и возможно не будет. :)
2. Что такое удобное предложение ? И о каком товаре речь ?
3. Аналитика как раз прекрасно покажет любые продажи. И по кафе и по кено и по супермаркету.
4. Тут надо просто дописать ф-л на бронирование мест. Где-то отдельно хранить инфу по зал/место/ряд.
5. Да, сущность "сеанс" нужна, причем она сложная (в ней много параметров).
6. Тут нет противоречия. Цена формируется расчетом на пересечении Фильм/сеанс (когда они известны).

Конкретно для продажи билетов нужен ряд вспомогательных таблиц по бронированию и сеансам. Они нужны в любом случае.

А карточка товара "билет" нужна только одна (или парочку). Чтоб ее вставить в унифицированный документ продажи.
В данном случае у карточки товара крайне малая бизнес-нагрузка. Просто наличие строки и ссылки в чеке.

Коллега, ну где ваша универсальная схема ??? Чтоб и билет в кено купить и водочки попить в баре... :)
...
Рейтинг: 0 / 0
Сущности
    #38930850
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь я с LSV соглашусь.
Одна таблица с товарами, у каждого товара дополнительные поля-атрибуты, которые могут быть отдельными сущностями.
Если я правильно понял его мысль.
...
Рейтинг: 0 / 0
Сущности
    #38930918
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Аналитика как раз прекрасно покажет любые продажи.

Нет, конечно. Кот уже рассказал вам достаточно, чтобы рассматривать билет как сущность не товарных категорий.
...
Рейтинг: 0 / 0
Сущности
    #38930959
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Аналитика как раз прекрасно покажет любые продажи.
Нет, конечно. Кот уже рассказал вам достаточно, чтобы рассматривать билет как сущность не товарных категорий.Да пофигу, чо там кто рассматривает. Хоть горшком назови.

Аналитика построится по документам продажи. Там есть кол-во билетов, суммы и ссылки на "сеанс". Этого достаточно для аналитики.

зы: нет никаких билетов, товаров и услуг. А сущности вообще надуманная абстракция. :)
Есть таблицы с записями и бизнес-связи между ними. Больше ничего и не нужно.
...
Рейтинг: 0 / 0
Сущности
    #38930968
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScarferNVОдна таблица с товарами, у каждого товара дополнительные поля-атрибуты, которые могут быть отдельными сущностями.
Если я правильно понял его мысль.

А разве кто-то предлагал вообще отдельные и никак не связанные таблицы делать? Я не помню такого.
Речь шла о том, что данные о разных товарах хранить НЕ В ОДНОЙ таблице, а в разных специфических для каждого товара (услуги).

Тут подойдет классическая схема "звезда". ИД товара "зародится" в единой для всех таблице и разойдется по своим специфическим. Связи на товары таким образом будут из единой точки- что есть очень хорошо.
Специфические для каждого товара данные будут храниться в своей (своих) таблице.
...
Рейтинг: 0 / 0
Сущности
    #38930982
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiТут подойдет классическая схема "звезда". ИД товара "зародится" в единой для всех таблице и разойдется по своим специфическим. Связи на товары таким образом будут из единой точки- что есть очень хорошо.
Специфические для каждого товара данные будут храниться в своей (своих) таблице.Я примерно о том же говорю уже полдня. :)
Это особенно важно, когда система большая и многофункциональная.
...
Рейтинг: 0 / 0
Сущности
    #38930990
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Да пофигу, чо там кто рассматривает.

Вот в этом и проблема. Вам предложили абсолютно адекватный подход, но ваши стереотипы вам дороже.
...
Рейтинг: 0 / 0
Сущности
    #38930995
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решили наконец-то))
...
Рейтинг: 0 / 0
Сущности
    #38931004
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScarferNVРешили наконец-то))

Не понятно правда что именно решали. Но решили... )))
...
Рейтинг: 0 / 0
Сущности
    #38931042
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз напоминаю, с чего начиналось
LSVПродаем стулья, апельсины и билеты в кино - т.е - это все товар.
Правильно ли весь этот товар хранить в одной таблице базы или это считаются разные сущности?


Хранить в одной.
Потому что они будут фигурировать в одних и тех же документах ( складских , товарных и пр.).

Могут быть доп. признаки. Но это не причина разносить по разным сущностям.


LSVНужно иметь серьезные основания, чтоб создавать отдельную сущность-таблицу.
"Билет в кино" до таких оснований никак не дотягивает. Это товар или услуга

И чем заканчивается

LSVКонкретно для продажи билетов нужен ряд вспомогательных таблиц по бронированию и сеансам. Они нужны в любом случае.

А карточка товара "билет" нужна только одна (или парочку). Чтоб ее вставить в унифицированный документ продажи.
В данном случае у карточки товара крайне малая бизнес-нагрузка. Просто наличие строки и ссылки в чеке.

Т.е. все важные для продажи характеристики "билетов в кино" в итоге лежат в отдельных сущностях, в той самой "одной" таблице товаров лежит одна запись-заглушка (при наличии сотен и тысяч единиц ассортимента) - без цены, без информативного для покупателя названия, без характеристик. Осталась в общем-то ерунда - понять что ссылка "в чеке" на один единственный обьект для всех фактов продаж самых разных билетов совершенно неинформативна и в нее ровно с тем же успехом можно писать NULL, а следовательно - запись в таблице товаров "билет в кино" не нужна ни для чего.
Ну "поздравляю, Шарик...."(c) :)
...
Рейтинг: 0 / 0
Сущности
    #38931318
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosкак вы думаете - почему этот вопрос возникает изо дня в день в течении стольких лет?

Потому что люди не умеют моделировать данные :) Есть интересная книга "Business Objects: Re-Engineering for Re-Use" (несмотря на обилие buzzword'ов в названии книга действительно хорошая). В разделе 3.5.1 разбирается подобный пример.

В реальности товары, апельсины, стулья, билеты - это разные объекты, которые можно изобразить в виде иерархии (см. концептуальную модель ниже). Но при проектировании БД мы должны схлопнуть эту иерархию одним из двух способов (см. логическую модель ниже). Как именно мы её схлопнем зависит от особенностей СУБД, от запросов, которые мы будем делать, от набора атрибутов у этих объектов и т.п.

Если рисовать совсем правильную концептуальную модель, то апельсины, стулья и билеты не всегда являются товарами. Товар - это не основная их сущность, а временная роль, которая возникает в контексте продажи/покупки. Другая их роль - это, например, продукт, которая возникает в контексте производства, и там у них будет уже другой набор свойств и отношений.
...
Рейтинг: 0 / 0
Сущности
    #38931369
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ares_ekbЕсли рисовать совсем правильную концептуальную модель, то апельсины, стулья и билеты не всегда являются товарами. Товар - это не основная их сущность, а временная роль, которая возникает в контексте продажи/покупки. Другая их роль - это, например, продукт, которая возникает в контексте производства, и там у них будет уже другой набор свойств и отношений.

Ares_ekb, садитесь! 5!
Вопрос только останется в том, как лучше реализовать такую правильную концептуальную схему.
Пойти можно разными путями.

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

правильная реализация правильной концептуальной модели существует, но не всем нравится :) Это 6НФ. Высокая степень нормализации данных продвигается, например, в Data Vault Modeling, Anchor Modeling.

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

Ну, короче, если всё правильно проектировать, то модель данных не будет сильно изменяться. А если ещё и хранить данные в максимально нормализованном виде, то даже эти редкие изменения не будут доставлять никаких проблем.

Вот, кстати, наша модель данных, тут порядка 3000 объектов и 5000 связей :)
...
Рейтинг: 0 / 0
Сущности
    #38931451
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Осталась в общем-то ерунда - понять что ссылка "в чеке" на один единственный обьект для всех фактов продаж самых разных билетов совершенно неинформативна и в нее ровно с тем же успехом можно писать NULL, а следовательно - запись в таблице товаров "билет в кино" не нужна ни для чего.В общем случае "ссылка только на товар" все равно недостаточна.
Кроме ценообразования в самом товаре (допустим "апельсин" или "хлеб") есть еще внешние факторы: различные скидки, зависящие от инфы в документе продажи.
"Билет в кино" это вырожденный случай торговли одним единственным артикулом (одной карточкой, кот. теоретически может быть NULL), для кот. основная инф.нагрузка находится в документе продажи.
Такое бывает. Это нормально.

В чем собственно суть претензии ? В "карточка не нужна" ? Для универсальных отчетов по продаже будет нужна. Тем более карточка может ссылаться на группу товара, кот. может иметь аналитическую нагрузку в отчетах (н-р отчет по группам товара).
Группы могут быть "кинобилеты", "билеты на выставки", "билеты в аквапарк" и т.д. И это будет видно в отчетах.
В общем случае ни в одной системе нельзя сделать все карточки товара равнозначными по логике. Всегда будут какие-то особые карточки, у кот. особая аналитика и логика: основные средства, сырьё, полуфабрикаты, ресурсы, услуги и т.д.
Для этих карточек особая инфа будет находиться в других таблицах. Но источник "ID товара" все равно будет в одной таблице.
Зная тип карточки нет никакой проблемы обработать бизнес-логику индивидуально.

Таблица "Справочник товара" это всего лишь:
* ID,
* Артикул,
* Название(я),
* Тип карточки,
* Группа товара.

Всё ! Остальная инфа - в других таблицах (только в простых случаях - в этой же таблице). В некот. случаях можно обойтись одной общей группой таблиц для EAV-параметров (пример: фильтры интернет-магазинов).

2 К.М. : Своей схемы для "апельсин, хлеб, билет в кино" ты так и не показал.
Наблюдаю только пустую болтовню и цепляние к терминам.
...
Рейтинг: 0 / 0
Сущности
    #38931454
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ares_ekbВот, кстати, наша модель данных, тут порядка 3000 объектов и 5000 связей :)

Ни о чем не говорящая картинка ) Или что мы должны ахнуть увидев такое количество объектов? Нас таким не напугаешь )
...
Рейтинг: 0 / 0
Сущности
    #38931457
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serguei,

описание этой картинки занимается несколько тысяч страниц текста, причем в значительной степени написанного людьми, а не сгенеренного автоматически. Я его не привожу по понятным причинам. Картинка - просто подтверждение того, что такой подход работает.
...
Рейтинг: 0 / 0
Сущности
    #38931479
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ares_ekbописание этой картинки занимается несколько тысяч страниц текста, причем в значительной степени написанного людьми, а не сгенеренного автоматически

гордимся вами )

Ares_ekbподтверждение того, что такой подход работает

Эта картинка абсолютно ничего не подтверждает )))

А ваша база думаю мало кому интересна- у каждого своя специфика, так что правильно делаете, что храните ее в секрете )))
...
Рейтинг: 0 / 0
Сущности
    #38931697
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV2 К.М. : Своей схемы для "апельсин, хлеб, билет в кино" ты так и не показал.

*facepalm*

МатроскинИ как-то пока получается, что лучше когда "обычные товары" хранятся в одних таблицах по одной схеме, "билеты в кино" - в других по другой.


Как может выглядеть эта "другая схема" - я тоже рассказывал.
Поэтому каталога товара в классическом понимании тут вообще не нужно, а нужен некий кубик с измерениями "Кинотеатр", "Фильм", "Сеанс" (+, возможно, "категория места" и что-то еще).
...
Рейтинг: 0 / 0
Сущности
    #38931758
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как может выглядеть эта "другая схема" - я тоже рассказывал."Кубик" это не рассказ :)

Как будет выглядеть сводный отчет по продажам по группам товара (допустим есть группа товара "билеты в кено") ?
В нем будет отдельный юнион по твоему "кубику" ?
Твой кубик - фактически отдельная торговая подсистема. Де-факто - отдельный проект. Повторяю, мы не обсуждаем отдельный проект "билеты" .
Нам нужен функционал по продаже билетов внутри большой КИС с разными видами торгового бизнеса.
...
Рейтинг: 0 / 0
Сущности
    #38931765
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ares_ekbSerguei,

Вот, кстати, наша модель данных, тут порядка 3000 объектов и 5000 связей :)

А почему некоторые объекты не имеют связей с другими (одинокие точки по углам)? Можете привести примеры?
...
Рейтинг: 0 / 0
Сущности
    #38931815
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Потому что люди не умеют моделировать данные

Полагаете, вы научились проектированию, если услышали слово "контекст"? В вашей "совсем правильной модели" в принципе отсутствует дистрибьюция, - она ничем не лучше любого другого традиционного дерьма.

> В реальности товары, апельсины, стулья, билеты - это разные объекты, которые можно изобразить в виде иерархии

Можете смело выбросить эту книжку. Обычный булшит.
...
Рейтинг: 0 / 0
Сущности
    #38931831
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher,

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

что за дистрибьюция? Ну, я догадываюсь, что картинка производит впечатление полного хаоса, что там всё со всем связано. Но это не так. Или что с ней не так? )

Вы делаете очень скоропалительные выводы о том хорошая или плохая книжка по моим сообщениям :) Может, это я дурак, а не книжка плохая?
...
Рейтинг: 0 / 0
Сущности
    #38931843
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVКак будет выглядеть сводный отчет по продажам по группам товара (допустим есть группа товара "билеты в кено") ?
В нем будет отдельный юнион по твоему "кубику" ?

Сводный отчет по продажам хлеба и билетов в кино - это достаточно бредовая штука. Это по-разному учитывается в бухгалтерии,
у них разная маржинальность, они входят в разные KPI...
(Помню случай - бизнес решил заняться продажей новой группы товаров (назовем ее А), весьма сильно отличающихся от всего остального ассортимента. Ну добавили новый тип, запустили, - через 3 месяца бизнес приходит и говорит "знаешь, мы достались в отчете по продажам выставлять фильтры - сделайте нам 2 отдельных отчета, Отчет по продажам А и Отчет по продажам всего остального").
Если заказчик неадекват и хочет-таки суммировать скрепки и камазы батоны хлеба и билеты в кино - да, грубо говоря,
будет "отдельный union" (на практике, скорее всего, вызов отдельной процедуры)

LSVТвой кубик - фактически отдельная торговая подсистема. Де-факто - отдельный проект. Повторяю, мы не обсуждаем отдельный проект "билеты" .
Нам нужен функционал по продаже билетов внутри большой КИС с разными видами торгового бизнеса.

Я уже отвечал на это - глупости, именно это мы и обсуждаем, "хранить вместе или отдельно", "в одной подсистеме" или "в разных".
Самое смешное, что у Вас-то это тоже отдельная подсистема :)
Конкретно для продажи билетов нужен ряд вспомогательных таблиц по бронированию и сеансам. Они нужны в любом случае.

Если Вы не согласны - определение "подсистемы" в студию.
...
Рейтинг: 0 / 0
Сущности
    #38931845
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ааа.... дистрибьюция товара? Ну, тогда она меня не волнует. Я говорю о принципах моделирования, а дистрибьюцией пусть занимаются дистрибьюторы.
...
Рейтинг: 0 / 0
Сущности
    #38931867
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ну, тогда она меня не волнует.

Это заметно. Риторический вопрос: чему вы собираетесь учить окружающих, если не в состоянии реализовать примитивную розничную модель?
...
Рейтинг: 0 / 0
Сущности
    #38931880
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сводный отчет по продажам хлеба и билетов в кино - это достаточно бредовая штука. Это по-разному учитывается в бухгалтерии, у них разная маржинальность, они входят в разные KPI...Ну почему же ? "Билет в кино" это ж просто как пример.
Маржинальность даже у однотипных товаров разная. KPI тоже. Что с того ?
//По разному в бухгалтерии...
А в чем проблемы ? Просто другие проводки и счета. Это настраиваемо.

// Если заказчик неадекват и хочет-таки...
Вы даже не поняли, что дело не в заказчике. Дело в унифицированности подходов. Все продажи проходят по унифицированным шагам и процедурам.
Чем отличается продажа билетов от платных погрузки, доставки, упаковки, хранения ? Практически ничем. И там и там есть специфическая инфа.
Делаем для услуг отдельные "кубики" ? Для каждой свой или один на всех ? :)
...
Рейтинг: 0 / 0
Сущности
    #38931888
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пора тему закрывать )

А то какие то "бурления говн" начались.)))
...
Рейтинг: 0 / 0
Сущности
    #38931894
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

меня не интересует розничная модель, мне даже в голову не приходило её реализовывать, я не собираюсь никого ничему учить. Я говорю о принципах моделирования. Был вопрос: "почему вопрос о правильном разложении объектов на таблицы часто возникает?" По крайней мере я его так понял. И я на него ответил: "потому что разработчики не понимают разницу между концептуальными и логическими моделями" И привёл примеры, поясняющие моё утверждение. Всё остальное вы мне уже приписываете.

Более того, ТСу нафиг не нужно выделять какие-то роли и т.п. У него стулья, апельсины и билеты всегда являются товарами.
...
Рейтинг: 0 / 0
Сущности
    #38931961
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> меня не интересует розничная модель

Плохо.

> Я говорю о принципах моделирования.

Вдвойне плохо. И позиция LSV деструктивна ровно поэтому же. Видите ли, ваша лавка - или ваша структура данных, что в данном случае одно и то же - не существует сама по себе. Хотите вы этого или нет, вы оперируете и данными внешних источников. Любая частная модель - срез воображаемой глобальной модели, её качество определяется не нормализацией или количеством таблиц, а тем, насколько корректно вы этот срез сделали. Другими словами, насколько полное у вас представление об этой гипотетической глобальной модели. Это наиболее узкое место в проектировании, которое плохо поддаётся формализации.
...
Рейтинг: 0 / 0
Сущности
    #38931966
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И - да, это не наезд, это предложение посмотреть на задачу чуть шире.
...
Рейтинг: 0 / 0
Сущности
    #38932022
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Вдвойне плохо. И позиция LSV деструктивна ровно поэтому же. Видите ли, ваша лавка - или ваша структура данных, что в данном случае одно и то же - не существует сама по себе. Хотите вы этого или нет, вы оперируете и данными внешних источников. Любая частная модель - срез воображаемой глобальной модели, её качество определяется не нормализацией или количеством таблиц, а тем, насколько корректно вы этот срез сделали. Другими словами, насколько полное у вас представление об этой гипотетической глобальной модели. Это наиболее узкое место в проектировании, которое плохо поддаётся формализации.Пустая болтовня. Где конкретика по сабжу ?
...
Рейтинг: 0 / 0
Сущности
    #38932065
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЧем отличается продажа билетов от платных погрузки, доставки, упаковки, хранения ? Практически ничем.

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

Какая конкретика? Обоснование, почему билет - не то же самое, что апельсин? Ну... а оно надо?

> Пустая болтовня.

А это ещё одна существенная проблема. Вполне интересное обсуждение, которое могло бы развиваться кучей разных способов, упёрлось в традиционное "вам шашечки или ехать?". Осознать, что ошибочна сама постановка вопроса - это не так просто.
...
Рейтинг: 0 / 0
Сущности
    #38932122
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

я ровно об этом и говорю :)

Сначала нужно построить концептуальную модель ("срез воображаемой глобальной модели", который не зависит ни от каких таблиц, нормализации). Я привёл два примера таких концептуальных моделей. Да, они кривые, я не разбираюсь в торговле и даже не думал рисовать их "правильными". Но они демонстрируют идею, что концептуальная модель не зависит от последующей нарезки на таблицы.

Потом мы эту концептуальную модель уже превращаем в таблицы.
...
Рейтинг: 0 / 0
Сущности
    #38932141
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинLSVЧем отличается продажа билетов от платных погрузки, доставки, упаковки, хранения ? Практически ничем.*facepalm* №2
Знаете, мне эта фраза кажется настолько законченной, что что-то еще комментировать тут излишне.Так ты не стесняйся, комментируй. А главное, аргументируй.

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


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