powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы данных наподобие интернет-магазина
25 сообщений из 33, страница 1 из 2
Проектирование базы данных наподобие интернет-магазина
    #40049696
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
В планах написать небольшой сайтик для сбора на работе оптового заказа кофе чая и некоторых других товаров, чтобы заказать уже оптом в интернет магазине со скидкой. НА данный момент забиваем через эксель очень муторно и неудобно.
Сайт делаю в качестве тренировки изучение ASP.NET

Столкнулся с небольшой проблемой как сделать цену на кофе в таблице.

В интернет магазине следующие товары: Кофе, Чай, Капсулы для кофе, Дрип-пакеты
Все товары кроме кофе только одна цена

Вес и скидка только влияет на цену кофе:

Кофе имеет следующие цены:
- цена за 250гр пакет
- цена за 1кг пакет

Причем еще дополнительно цена зависит от общего веса кофе со всех заказов:
- если вес 10кг и более то скидка к кофе 10%
- если вес 25кг и более то скидка к кофе 20%
- если вес 50кг и более то скидка к кофе 30%
- если вес 350кг и более то скидка к кофе 35%

Прикладываю два файла картинку и схему vuerd.json в плагине vscode ERD
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049697
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавляю еще ввиде картинки
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049698
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Связи можно пока не смотреть поставил везде один к многим пока
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049705
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По этой схеме не очень понятно завтра перерисую в online sql designer от Ondraz
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049749
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мои глоза кровоточат (с)
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049752
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo,

Неужели все так плохо?))
Оформление не по нраву или сама структура базы?
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049864
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorProger
L_argo,

Неужели все так плохо?))
Оформление не по нраву или сама структура базы?

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

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

0) не делай везде шизонутый сурогатный ID, он у тебя в половине таблиц не нужен.

1) авторВ интернет магазине следующие товары: Кофе, Чай, Капсулы для кофе, Дрип-пакеты
Все товары кроме кофе только одна цена
Если хоть один товар имеет разные цены -- значит, все имеют разные цены...

2)
авторКофе имеет следующие цены:
- цена за 250гр пакет
- цена за 1кг пакет

Это просто разные товары, кофе в такой упаковке и кофе в другой упаковке.

3)авторПричем еще дополнительно цена зависит от общего веса кофе со всех заказов:
- если вес 10кг и более то скидка к кофе 10%
- если вес 25кг и более то скидка к кофе 20%
- если вес 50кг и более то скидка к кофе 30%
- если вес 350кг и более то скидка к кофе 35%

Это какой-то бред, но пофиг. к товару в заказе применяется определённый прайс-лист, из него берётся цена, вот и всё.

Итого:

Таблицы Weights, TotalWeight, Discounts , CoffeePrices не нужны.

Price из CoffeePrices переезжает в Prices

К таблице PriceList надо добавлять какие-то данные, описывающие условия применения прайс-листа к накладной.
Которой, накладной, у тебя нет вообще ... -- надо добавлять.
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049984
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

автор0) не делай везде шизонутый сурогатный ID, он у тебя в половине таблиц не нужен.

0)А какие таблицы можно без ID сделать?


автор2) Это просто разные товары, кофе в такой упаковке и кофе в другой упаковке.

А как это реализовать все в одной таблицы получается надо?

автор3) Это какой-то бред, но пофиг.

Это не понял почему бред, что конкретно? (это условия интернет-магазина, где мы размещаем свой оптовый заказ)


К таблице PriceList надо добавлять какие-то данные, описывающие условия применения прайс-листа к накладной.
Которой, накладной, у тебя нет вообще ... -- надо добавлять.
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049987
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИВП,

Да согласен сейчас переделаю на этом сайте (подозрительная ссылка!) https://ondras.zarovi.cz/sql/demo
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049990
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv

Это просто разные товары, кофе в такой упаковке и кофе в другой упаковке.


А если еще кофе имеет крупный помол, мелкий помол, в зернах (но это правда не влияет на цену). Бывает еще кофе сорт недели на него скидка не влияет
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049992
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JuniorProger,

Переделал картинку
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049993
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JuniorProger,

Добавлю еще xml чтобы можно было редактировать

https://ondras.zarovi.cz/sql/demo/

на этом сайте нужно загрузить текст из xml, в save/load
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049997
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще есть вопрос

Вот есть таблица

Product
Id
Name
Description
Weight


Если например название товара одинаковое а вес разный то получается же дублирование по названию, а у некоторых товаров вес не указан в прайслисте например капсулы для кофе:
Название Вес
Бэрри 250г
Берри 1кг
Капсулы null?
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40049999
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Прикреплю прайлист интернет-магазина в котором заказываем
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050000
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050001
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JuniorProger,
Вот так мы пока составляем в экселе, приходится каждый заказ собирать со всех и вручную вбивать
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050099
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 обвешать разными проверками на непересечение интервалов!
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050101
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что-то вообще задачу не понял - вы все эти колониальные товары продаете другим или покупаете для себя?
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050108
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorProger
MasterZiv,

автор0) не делай везде шизонутый сурогатный ID, он у тебя в половине таблиц не нужен.


0)А какие таблицы можно без ID сделать?


В начале нужно сделать модель данных без суррогатных ключей.
И нормализацию проводить без суррогатных ключей.
Правда в модели будут составные ключи, но это ничего страшного.
Вот для таких "сущностей", где используется составной естественный ключ, можно/нужно использовать суррогатный ключ с ID.
Суррогатный ключ ещё можно использовать для текстовых естественных ключей, для скорости.
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050110
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Я что-то вообще задачу не понял - вы все эти колониальные товары продаете другим или покупаете для себя?


Со всего отдела (и уже почти со все компании) собираем заявки кто какой кофе выбрал и сколько. Потом формируем оптовый заказ уже отправляем в тестикофе. Но мне же нужно посчитать кому сколько надо платить. Потом все скидывают мне на карте и я оформляю оптовый заказ. Приходит кофе и мы распределяем кто что заказал. Вот как то так вкратце
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050111
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 нужен, но можно константами конечно в коде забить жестко их
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050114
JuniorProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Я что-то вообще задачу не понял - вы все эти колониальные товары продаете другим или покупаете для себя?


Да это впринцие даже не то чтобы задача, просто моя личная инициатива. Вот хочется сделать для своего портфолио проект на ASP.NET потренироваться, ну и нам облегчить работу по сбору заказов, чтобы каждый заходил на мой сайт вбивал свои заказы, и потом для меня выводилась бы таблица общая чтобы я уже мог быстро вбить все заказа на оптовом сайте тестикофе
...
Рейтинг: 0 / 0
Проектирование базы данных наподобие интернет-магазина
    #40050480
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorProger,

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


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