|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#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 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger, А готовый инет-магазин использовать никак? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 22:03 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Обычный весовой товар и сетка скидок от кол-ва. до 10 кг = 0% до 50кг =10% до 100кг =15% Правда, если скидки не на конкретный товар, а на суммарное кол-во неск. товаров, то схема будет чуть сложнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 22:25 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Изопропил А готовый инет-магазин использовать никак? Человеку хочется попрактиковаться в .NET, почему бы и нет, цель похвальная. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 23:15 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger, По поводу цен, которые ты так тщетно пытаешься запихнуть в БД. Я бы лично все это делал совсем не так. У тебя рассчет цены в каждом конкретном случае с учетом всевозможных скидок, акций и т.п. это некоторая "политика", которая в любой момент может поменяться. Поэтому это надо делать в коде с возможностью выбора. Храни в БД для товара некий "идентификатор текущей политики" и некие входные параметры этой политики (в простейшем случае это может быть типа как "базовая цена" без скидок), но в принципе там может быть что угодно. Для рассчета конкретной цены какого-то товара приложение читает из БД идентификатор политики, её параметры, выбирает в коде по ИД соответствующий компонент политики, и расситывает с его помощью цену по парамеитрам самой политики и атрибутам покупки (например количество). А в заказ пишется уже рассчитанная цена для данного конкретного случая покупки. Такая схема позволит тебе в случае надобности реализовать любой расчет цены без изменений схемы БД. И даже без изменения имеющегося приложения, если ты это сделаешь по типу динамически подключаемых плагинов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 23:26 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Изопропил JuniorProger, А готовый инет-магазин использовать никак? Дк мне больше надо все это в качестве обучения ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 04:13 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
JuniorProger, структуру таблиц можно в разных cms посмотреть Она далека зачастую от идеала, но посмотреть полезно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 23:05 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
Изопропил JuniorProger, структуру таблиц можно в разных cms посмотреть Она далека зачастую от идеала, но посмотреть полезно 0. Даже в простых системах могут быть сотни таблиц, большинство из которых непонятно зачем. 1. Документации по таблицам почти никогда нет или она ущербна до невозможности. 2. О связях между полями можно только догадываться. Если в ID-шках значения 1, 2, 3....то что-то найти крайне сложно. 3. Метаданные почти никогда недоступны (частичное исключение - 1С). 4. Вменяемые названия полей встречаются нечасто. Иногда это просто некие коды (_fld123, н-р в 1С) 5. Попытка изучить SQL-запросы от системы может провалиться из-за огромного потока непонятных запросов. 6. Логика заполнения полей и вставки записей почти всегда неочевидна. Масса подводных камней, скрытых внутри системы. 7. 90% возможностей системы для Вас избыточны и не нужны. 8. Специалистов по внутренностям системы не найти. Даже по популярным. Вывод: все готовые системы - вещь в себе. Пользу можно извлечь разве что из ихнего ГУЯ. Иногда что-то оказывается очень простым и удобным (навигация, поиск, лаконичность без потерь ф-ла и пр.). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:53 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
L_argo Изопропил JuniorProger, структуру таблиц можно в разных cms посмотреть Она далека зачастую от идеала, но посмотреть полезно 0. Даже в простых системах могут быть сотни таблиц, большинство из которых непонятно зачем. 1. Документации по таблицам почти никогда нет или она ущербна до невозможности. 2. О связях между полями можно только догадываться. Если в ID-шках значения 1, 2, 3....то что-то найти крайне сложно. 3. Метаданные почти никогда недоступны (частичное исключение - 1С). 4. Вменяемые названия полей встречаются нечасто. Иногда это просто некие коды (_fld123, н-р в 1С) 5. Попытка изучить SQL-запросы от системы может провалиться из-за огромного потока непонятных запросов. 6. Логика заполнения полей и вставки записей почти всегда неочевидна. Масса подводных камней, скрытых внутри системы. 7. 90% возможностей системы для Вас избыточны и не нужны. 8. Специалистов по внутренностям системы не найти. Даже по популярным. Вывод: все готовые системы - вещь в себе. Пользу можно извлечь разве что из ихнего ГУЯ. Иногда что-то оказывается очень простым и удобным (навигация, поиск, лаконичность без потерь ф-ла и пр.). Есть и исключения. Например Аладдин. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 19:21 |
|
Проектирование базы данных наподобие интернет-магазина
|
|||
---|---|---|---|
#18+
А никто ещё не рекомендовал посмотреть учебные базы Microsoft? Там как раз есть база (или схема) и для интернет-магазина. Со всеми заморочками - товарами, категориями товаров, ценами, скидками, поставщиками и прочей обвязкой. Лишнии поля и базы стереть, и всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 17:00 |
|
|
start [/forum/topic.php?all=1&fid=32&tid=1539795]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 243ms |
total: | 405ms |
0 / 0 |