|
|
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
Тема следующая: Надо сделать базу данных, в которой будут сети магазинов, в этих сетях есть магазины. Магазины в конкретных городах. В СЕТЯХ (не в магазинах) есть товары, например, молоко. Но молоко может быть ОАО Залесский фермер или ОАО ЕЖК. В разных сетях товар разных вендоров стоит по разному. Помимо этого в одной сети в разных городах может стоить по разному товар... Встал вопрос как правильно хранить цену в базе, так чтобы было не сложно вытаскивать ее потом запросами. Усложняется все тем, что товар не товар. То есть товар нужно делать SKU. Поэтому цена будет зависеть от параметров товара. Я привел пример базы с конкретным товаром, и что то не могу продумать схему "товары с SKU" Плюсом нужна история по датам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2015, 17:12 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
maxycВстал вопрос как правильно хранить цену в базе, так чтобы было не сложно вытаскивать ее потом запросами. Дата начала + дата окончания действия цены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2015, 22:47 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
maxyc, А Вы для каких целей проектируете БД? Где она будет использоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 09:44 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
insemaxyc, А Вы для каких целей проектируете БД? Где она будет использоваться?Курсач ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 15:00 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
inseА Вы для каких целей проектируете БД? Где она будет использоваться? А что это как то меняет правила проектирования БД? ИМХО: В любом случае нужно делать хорошо- плохо само получится. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 15:35 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
maxyc Встал вопрос как правильно хранить цену в базе, так чтобы было не сложно вытаскивать ее потом запросамиА зачем ее (цену) вообще хранить в отдельной таблице - какая в этом выгода? Нехай лежит себе в журнале движения товаров и не надо ее вытаскивать. maxyc Но молоко может быть ОАО Залесский фермер или ОАО ЕЖКТо бишь оно потом сливается в одну бочку? С молоком в розничной продаже я такое в последний раз видел как бы не 20-30 лет назад. А если это фасованная продукция, то она заслуживает собственной записи в каталоге товаров. maxyc То есть товар нужно делать SKU.Если вы поясните, что вы подразумеваете под "товары с SKU", то ваши шансы получить адекватный ответ возрастут. LSV Курсач ? :) Не сезон для курсачей. Больше похоже на экзарсис на тему - "как бы я написал свою торговлю и склад" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 16:42 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
SERG1257maxyc Встал вопрос как правильно хранить цену в базе, так чтобы было не сложно вытаскивать ее потом запросамиА зачем ее (цену) вообще хранить в отдельной таблице - какая в этом выгода? Нехай лежит себе в журнале движения товаров и не надо ее вытаскивать. Потому что цена - более широкое понятие, чем движение товара. У движения - должна быть цена, а вот цена - совершенно не обязана быть связана с движением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 17:27 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
SergueiinseА Вы для каких целей проектируете БД? Где она будет использоваться? А что это как то меняет правила проектирования БД? ИМХО: В любом случае нужно делать хорошо- плохо само получится. :) для OLTP учётных задач - одна структура БД, для отчётности - другая. ещё как минимум надо учитывать рост нагрузки как по кол-ву записей, так и по количеству пользователей, пиковые нагрузки. развитие системы по функционалу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 20:29 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
SERG1257, а ещё похоже - какие-то торгаши очень жадные, что нанимают студента на боевую задачу. и настолько жадны, что студент ни опыта проектирования ни знания предметной области ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 20:35 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
автор Тема следующая: Надо сделать базу данных, в которой будут сети магазинов, в этих сетях есть магазины. Магазины в конкретных городах. В СЕТЯХ (не в магазинах) есть товары, например, молоко. Но молоко может быть ОАО Залесский фермер или ОАО ЕЖК. В разных сетях товар разных вендоров стоит по разному. Помимо этого в одной сети в разных городах может стоить по разному товар... Встал вопрос как правильно хранить цену в базе, так чтобы было не сложно вытаскивать ее потом запросами. Усложняется все тем, что товар не товар. То есть товар нужно делать SKU. Поэтому цена будет зависеть от параметров товара. Я привел пример базы с конкретным товаром, и что то не могу продумать схему "товары с SKU" Плюсом нужна история по датам Вы вводите своими комментариями в заблуждение. Магазин это магазин, товар(например молоко) это товар, в принципе они никак не связаны в реальной жизни, они подчиняются только законом логике - чтобы купить товар, нужно сходить в магазин, в данном случае мы говорим о продуктовом магазине. Цена это свойство любого товара, также как и дата изготовления, и цвет упаковки. Свойство цена прикрепляется к товар, как неотъемлемая его часть, так как товар-это сущность-> объект реального мира. Наверное уместно говорить о каком-то складе, тогда логика прояснится Есть магазин-есть склад-на складе есть товары, товары разгружаются со склада в магазин и поступают в продажу. Наверное логично выделить сущность движение товара(или его история), чтобы можно было отследить, когда и где он был закуплен, по какой цене, по каким накладным, и каким образом он попал в конкретный магазин. Мне не понятно почему вы считаете, что цена зависит от товара, товар, это сущность(или контейнер) хранящий набор атрибутов(свойств): цена, вес, срок годности. Если таблицы спроектированы правильно, то при любом количестве свойств, зная логику устройства вашей базы данных, с помощью Structured query Language можно получить всю необходимую информацию. Я виж решение вашей задачи именно так. Мне не понятно зачем вы выделяет Items и Prices, получается что цена товара это отдельная сущность, я считаю что здесь логика не верна, потому что если брать аналогию например, автомобиль, то вы отдельно описываете автомобиль и колеса автомобиля, хотя логическая единица всего одна Автомобиль, также как и с товаром-там всего одна логическая единица Товар, у него есть свойство цена, эту цену можно разбить -закупочная цена, цена реализация, наценка, но все равно все это относится именно к товару, цена сама по себе быть не может. А вот поле adress из сущности stores лучше перенести в справочник, так и назвать его Adress,там будет храниться информация о горое, стране и физическом адресе расположения магазина, с номером телефона, и кодом города, и директором магазина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 01:30 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
ShkrylAndreiМне не понятно зачем вы выделяет Items и Prices, получается что цена товара это отдельная сущность, я считаю что здесь логика не верна, потому что если брать аналогию например, автомобиль, то вы отдельно описываете автомобиль и колеса автомобиля, хотя логическая единица всего одна Автомобиль, также как и с товаром-там всего одна логическая единица Товар, у него есть свойство цена, эту цену можно разбить -закупочная цена, цена реализация, наценка, но все равно все это относится именно к товару, цена сама по себе быть не может. Цена полезна как отдельная сущность хотя бы потому что она зависит от даты (а может зависеть, в принципе, и от других параметров). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 11:11 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинShkrylAndreiМне не понятно зачем вы выделяет Items и Prices, получается что цена товара это отдельная сущность, я считаю что здесь логика не верна, потому что если брать аналогию например, автомобиль, то вы отдельно описываете автомобиль и колеса автомобиля, хотя логическая единица всего одна Автомобиль, также как и с товаром-там всего одна логическая единица Товар, у него есть свойство цена, эту цену можно разбить -закупочная цена, цена реализация, наценка, но все равно все это относится именно к товару, цена сама по себе быть не может. Цена полезна как отдельная сущность хотя бы потому что она зависит от даты (а может зависеть, в принципе, и от других параметров). Поддержу, ибо автор хотел разные цены в разных магазинах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 11:50 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
ShkrylAndreiА вот поле adress из сущности stores лучше перенести в справочник, так и назвать его AdressЧем лучше? -Вероятность переиспользования адреса минимальна -Вероятность смены магазином адреса (чтобы было удобно хранить старый адрес минимальна) То бишь необходимости замены длинного адреса коротким address_id нет. ShkrylAndreiс номером телефона, и кодом города, и директором магазина. А это то как связано с адресом? Выносом адреса в отдельную таблицу получается вертикальное секционирование, причем будут ли использованы достоинства такого секционирования это бабушка надвое сказала, а недостатки (в виде поддержки дополнительной таблицы) будут обязательно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 16:53 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
SERG1257ShkrylAndreiА вот поле adress из сущности stores лучше перенести в справочник, так и назвать его AdressЧем лучше? Практически всем. Вероятность дополнения схемы другими сущностями, тоже имеющими адрес, высока. Вероятность изменения и дополнения формата хранения адреса высока. Вероятность появления сравнительно сложной бизнес-логики, связанной с адресами, высока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 18:53 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
maxyc, какую программу использовали для диаграммы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 22:26 |
|
||
|
Как правильно спроектировать БД?
|
|||
|---|---|---|---|
|
#18+
maxycТема следующая: Надо сделать базу данных, в которой будут сети магазинов, в этих сетях есть магазины. Магазины в конкретных городах. В СЕТЯХ (не в магазинах) есть товары, например, молоко. Но молоко может быть ОАО Залесский фермер или ОАО ЕЖК. В разных сетях товар разных вендоров стоит по разному. Помимо этого в одной сети в разных городах может стоить по разному товар... Встал вопрос как правильно хранить цену в базе, так чтобы было не сложно вытаскивать ее потом запросами. Усложняется все тем, что товар не товар. То есть товар нужно делать SKU. Поэтому цена будет зависеть от параметров товара. Я привел пример базы с конкретным товаром, и что то не могу продумать схему "товары с SKU" Плюсом нужна история по датам Почти норм. Единственый принципиальный момент - prices разве устанавливается для города? Она устанавливается для магазина. Иначе возможно нарушение целостности - цена ссылается на сеть1 и на город2 в котором нету магазинов этой сети. Так что лучше цену свяжи с stores. И убери связь с городом и сетью. Второй серьезный момент - вендор это свойство товара а не цены. Опять лишние связи, опять может быть нарушение целостности - когда прайс ссылается на товар1 и вендор2, а у этого вендора такого товара и нету. Сделай ссылку у items на vendors. А у prices убери её. Остальное уже по мелочи - две даты в ценах (начало, конец), свой PK в ценах, нормализация адресов, валюты для цены (страны разные есть зачем-то, а валют нет.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 09:13 |
|
||
|
|

start [/forum/topic.php?fid=32&tid=1540480]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 9ms |
| total: | 287ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...