Search
Write a publication
Pull to refresh

Comments 9

Секреты правильных таблиц

Заключаются в том, что, по правилам, положено еще иметь таблицу PRICES(id, product_id, price, open_at not_null, closed_at, ...) и из order_items делать ссылку в PRICES. В общем, так себе у вас секреты правильных таблиц.

P.S: и total в orders не нужен, он через sum() вычисляется

Это если у вас цена всегда одинаковая, для всех заказов , за все годы . А так она обычно меняется, иногда в пределах 15 минутного ролика в магазине на диване, который может быть привязан к вебшопу. И таких кейсов полно - акции, купоны, инфляция....

Ключевая ошибка - наличие цены не в ORDER_ITEMS, а наличие цены в PRODUCTS, которое приводит к потере информации.

А про то что вы перечислили - для всей этой фигни цена есть много вариантов. Самых частых два - например дублируют фактическую цену (а иногда и сумму) в order_items. Правда часто забывают предусмотреть что надо где-то сохранить почему цена именно такая а не стандартная, и потом начинаются гнилые разборки "а почему продали так дешево"

Второй - реже используемый но технически более правильный используемый вариант - когда у вас задекларировано несколько цен - например базовая, цена по карте, цена акционная и так далее (каждая отдельной строкой в таблице цен), и вы просто ссылаетесь на соответствующую цену.

В любом случае, цены больше нет в таблице PRODUCTS

Насчет криворуких разрабов: как-то раз мне надо было найти несколько sfx, а нужные были на одном из сайтов, на котором скачивать можно было только с подпиской, а прослушивать бесплатно. Не долго думая я полез в консоль и обнаружил, что аудио передается просто в mp3 файле

А это уже естественное отсутствие ограничений самого формата. Если звук можно слушать, то ничто не мешает осуществить запись этого звука в каком-нибудь аудиоредакторе, а потом сохранить записанное в MP3.

Лицензия на так работает. Если просто послушать - это работает, а если использовать, то могут потянуть в суд.

При чем тут low/no-code? Обычное рукожопство. Если в ДНК ошибки, то накосячить можно где угодно и на чем угодно.

И нет, low/no-code это совсем не круто. Это грустно.

Соглашусь с @outlingo ценники должны быть в таблице, можно ещё добавить максимальные размеры скидок, ставку НДС, и +пару вычисляемых полей минимальной и максимальной цены для контроля цены продаж

Очередные советы, которые делают только хуже :)

price с клиента в коммерции надо передавать ОБЯЗАТЕЛЬНО, а потом уже проверять на сервере соответствие и возвращать «Цена изменилась», если она изменилась, иначе пользователь откроет форму со старой ценой, будет думать, что покупает за старую цену, и пока он смотрит цена может поменяться и там дальше куча проблем, начиная от заказа с другой ценой, заканчивая списанием другой суммы…

Sign up to leave a comment.

Articles