|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Добрый день! В планах написать небольшой сайтик для сбора на работе оптового заказа кофе чая и некоторых других товаров, чтобы заказать уже оптом в интернет магазине со скидкой. НА данный момент забиваем через эксель очень муторно и неудобно. Сайт делаю в качестве тренировки изучение ASP.NET Столкнулся с небольшой проблемой как сделать цену на кофе в таблице. В интернет магазине следующие товары: Кофе, Чай, Капсулы для кофе, Дрип-пакеты Все товары кроме кофе только одна цена Вес и скидка только влияет на цену кофе: Кофе имеет следующие цены: - цена за 250гр пакет - цена за 1кг пакет Причем еще дополнительно цена зависит от общего веса кофе со всех заказов: - если вес 10кг и более то скидка к кофе 10% - если вес 25кг и более то скидка к кофе 20% - если вес 50кг и более то скидка к кофе 30% - если вес 350кг и более то скидка к кофе 35% Прикладываю два файла картинку и схему vuerd.json в плагине vscode ERD ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 21:31 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Добавляю еще ввиде картинки ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 21:31 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Связи можно пока не смотреть поставил везде один к многим пока ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 21:33 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
По этой схеме не очень понятно завтра перерисую в online sql designer от Ondraz ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 21:59 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Мои глоза кровоточат (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 10:07 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
L_argo, Неужели все так плохо?)) Оформление не по нраву или сама структура базы? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 10:15 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger L_argo, Неужели все так плохо?)) Оформление не по нраву или сама структура базы? Из-за оформления и структуру не разглядеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 15:16 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger, Ну ты умудрился сделать чёрную кошку в тёмной комнате... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 16:11 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger, 0) не делай везде шизонутый сурогатный ID, он у тебя в половине таблиц не нужен. 1) авторВ интернет магазине следующие товары: Кофе, Чай, Капсулы для кофе, Дрип-пакеты Все товары кроме кофе только одна цена Если хоть один товар имеет разные цены -- значит, все имеют разные цены... 2) авторКофе имеет следующие цены: - цена за 250гр пакет - цена за 1кг пакет Это просто разные товары, кофе в такой упаковке и кофе в другой упаковке. 3)авторПричем еще дополнительно цена зависит от общего веса кофе со всех заказов: - если вес 10кг и более то скидка к кофе 10% - если вес 25кг и более то скидка к кофе 20% - если вес 50кг и более то скидка к кофе 30% - если вес 350кг и более то скидка к кофе 35% Это какой-то бред, но пофиг. к товару в заказе применяется определённый прайс-лист, из него берётся цена, вот и всё. Итого: Таблицы Weights, TotalWeight, Discounts , CoffeePrices не нужны. Price из CoffeePrices переезжает в Prices К таблице PriceList надо добавлять какие-то данные, описывающие условия применения прайс-листа к накладной. Которой, накладной, у тебя нет вообще ... -- надо добавлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 16:25 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
MasterZiv, автор0) не делай везде шизонутый сурогатный ID, он у тебя в половине таблиц не нужен. 0)А какие таблицы можно без ID сделать? автор2) Это просто разные товары, кофе в такой упаковке и кофе в другой упаковке. А как это реализовать все в одной таблицы получается надо? автор3) Это какой-то бред, но пофиг. Это не понял почему бред, что конкретно? (это условия интернет-магазина, где мы размещаем свой оптовый заказ) К таблице PriceList надо добавлять какие-то данные, описывающие условия применения прайс-листа к накладной. Которой, накладной, у тебя нет вообще ... -- надо добавлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:14 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
ИВП, Да согласен сейчас переделаю на этом сайте (подозрительная ссылка!) https://ondras.zarovi.cz/sql/demo ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:16 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
MasterZiv Это просто разные товары, кофе в такой упаковке и кофе в другой упаковке. А если еще кофе имеет крупный помол, мелкий помол, в зернах (но это правда не влияет на цену). Бывает еще кофе сорт недели на него скидка не влияет ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:19 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger, Переделал картинку ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:21 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger, Добавлю еще xml чтобы можно было редактировать https://ondras.zarovi.cz/sql/demo/ на этом сайте нужно загрузить текст из xml, в save/load ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:24 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Еще есть вопрос Вот есть таблица Product Id Name Description Weight Если например название товара одинаковое а вес разный то получается же дублирование по названию, а у некоторых товаров вес не указан в прайслисте например капсулы для кофе: Название Вес Бэрри 250г Берри 1кг Капсулы null? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:30 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
MasterZiv, Прикреплю прайлист интернет-магазина в котором заказываем ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:38 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
MasterZiv, ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:38 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger, Вот так мы пока составляем в экселе, приходится каждый заказ собирать со всех и вручную вбивать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:43 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger .... Причем еще дополнительно цена зависит от общего веса кофе со всех заказов: - если вес 10кг и более то скидка к кофе 10% - если вес 25кг и более то скидка к кофе 20% - если вес 50кг и более то скидка к кофе 30% - если вес 350кг и более то скидка к кофе 35% ....... Хоть тут и советуют таблицу Discounts выкинуть, но логику ценообразования нужно где-то хранить, например, в коде расчёта конечной цены, что не есть хорошо. Предлагаю для вашего случая всё-таки сделать таблицу Discounts с такой структурой: ID_Discounts (Первичный ключ) ID_Products (Внешний ключ, ссылка на таблицу товаров) ID_Units (Внешний ключ, ссылка на таблицу единиц измерения, например, кг, рубли, и т.д.) MinCount (минимальное количество ед. измерения) MaxCount (максимальное количество ед. измерения) DiscountCent (Процент скидки) Тогда логика будет достаточно простая, после формирования заказа в процедуре формирования окончательной цены определить по ID_Products, есть-ли для товара таблица скидок, определить какую скидку применять, на количество (как у вас сейчас) или на сумму (пока у вас об этой скидки не додумались, но надо быть готовым к этому), затем по количеству товара в кг (или в рублях) определить процент скидки по попаданию в интервал между MinCount и MaxCount. Внимание!!! Заполнение таблицы Discounts обвешать разными проверками на непересечение интервалов! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 05:19 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Я что-то вообще задачу не понял - вы все эти колониальные товары продаете другим или покупаете для себя? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 06:04 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger MasterZiv, автор0) не делай везде шизонутый сурогатный ID, он у тебя в половине таблиц не нужен. 0)А какие таблицы можно без ID сделать? В начале нужно сделать модель данных без суррогатных ключей. И нормализацию проводить без суррогатных ключей. Правда в модели будут составные ключи, но это ничего страшного. Вот для таких "сущностей", где используется составной естественный ключ, можно/нужно использовать суррогатный ключ с ID. Суррогатный ключ ещё можно использовать для текстовых естественных ключей, для скорости. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 08:00 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
fkthat Я что-то вообще задачу не понял - вы все эти колониальные товары продаете другим или покупаете для себя? Со всего отдела (и уже почти со все компании) собираем заявки кто какой кофе выбрал и сколько. Потом формируем оптовый заказ уже отправляем в тестикофе. Но мне же нужно посчитать кому сколько надо платить. Потом все скидывают мне на карте и я оформляю оптовый заказ. Приходит кофе и мы распределяем кто что заказал. Вот как то так вкратце ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 08:04 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
zeon11 JuniorProger .... Причем еще дополнительно цена зависит от общего веса кофе со всех заказов: - если вес 10кг и более то скидка к кофе 10% - если вес 25кг и более то скидка к кофе 20% - если вес 50кг и более то скидка к кофе 30% - если вес 350кг и более то скидка к кофе 35% ....... Хоть тут и советуют таблицу Discounts выкинуть, но логику ценообразования нужно где-то хранить, например, в коде расчёта конечной цены, что не есть хорошо. Предлагаю для вашего случая всё-таки сделать таблицу Discounts с такой структурой: ID_Discounts (Первичный ключ) ID_Products (Внешний ключ, ссылка на таблицу товаров) ID_Units (Внешний ключ, ссылка на таблицу единиц измерения, например, кг, рубли, и т.д.) MinCount (минимальное количество ед. измерения) MaxCount (максимальное количество ед. измерения) DiscountCent (Процент скидки) Тогда логика будет достаточно простая, после формирования заказа в процедуре формирования окончательной цены определить по ID_Products, есть-ли для товара таблица скидок, определить какую скидку применять, на количество (как у вас сейчас) или на сумму (пока у вас об этой скидки не додумались, но надо быть готовым к этому), затем по количеству товара в кг (или в рублях) определить процент скидки по попаданию в интервал между MinCount и MaxCount. Внимание!!! Заполнение таблицы Discounts обвешать разными проверками на непересечение интервалов! Да думаю тоже что Discount нужен, но можно константами конечно в коде забить жестко их ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 08:07 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
fkthat Я что-то вообще задачу не понял - вы все эти колониальные товары продаете другим или покупаете для себя? Да это впринцие даже не то чтобы задача, просто моя личная инициатива. Вот хочется сделать для своего портфолио проект на ASP.NET потренироваться, ну и нам облегчить работу по сбору заказов, чтобы каждый заходил на мой сайт вбивал свои заказы, и потом для меня выводилась бы таблица общая чтобы я уже мог быстро вбить все заказа на оптовом сайте тестикофе ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 08:11 |
|
|
start [/forum/topic.php?fid=32&fpage=2&tid=1539795]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 146ms |
0 / 0 |