powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сущности
25 сообщений из 66, страница 2 из 3
Сущности
    #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
25 сообщений из 66, страница 2 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сущности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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