Yii2 - атака хейтеров и что делать дальше?

Не относящиеся к фреймворку и программированию вопросы
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

zelenin писал(а): 2018.03.17, 02:20 это бизнес-знание - тип лежащей в заказе сущности. Указывает оно на местоположение данных или на специфический обсчет элемента заказа - собственно решать приложению.
А с точки зрения проектирования схем реляционных баз - недостаток.

zelenin писал(а): 2018.03.17, 02:20 плюсы и минусы известны. вынося защиту целостности в приложение, более компактная схема предпочтительнее, чем дублирование таблиц.
Для Вас предпочтительнее. Для меня нет. И там не дублирование - элементы заказа разные, семантика разная. То же самое бизнес-знание о типах элементов заказа о котором Вы говорите. Просто выраженное другим способом с меньшим уроном реляционной модели.

Таким образом это не недостаток схемы, которая была приведена ранее:
andku83 писал(а): 2018.03.16, 18:31 Изображение

предложу такую схему, здесь есть избыточности относительно "задачки", и излишество в ключе property_id в таблице product_property(следствие более раннего отсутствия property_value)

но в контексте разговора, здесь нигде нет необходимости составных FK

З.Ы. И я не против выслушать критику и предложения по улучшению структуры
zelenin писал(а): 2018.03.16, 19:08 завязав заказ на product, ты теряешь возможность продавать, что-то кроме него, например услугу упаковки подарочной бумагой, комплект продуктов со скидкой 5% или что-то другое принципиально отличающееся от обычного продукта.
Последний раз редактировалось anton_z 2018.03.17, 02:35, всего редактировалось 1 раз.
sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya »

anton_z и zelenin узбакойтесь пожалуйста, время для дискуссий будет
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

sm-vasya писал(а): 2018.03.17, 02:18 только куда то профи пропал, видимо ждет пока не профи придут к какому то мнению, а он потом придет и скажет "ну я так и хотел написать, только не успел"
Не ну, может он всех удивит и покажет схему объектной базы, которая "идеально вписывается в DDD".
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

Мне схема samdark нравится. Я бы тоже не увязывал жестко атрибуты категории товара и атрибуты самого товара - слишком накладно. С этой точки зрения хранить атрибуты в jsonb оптимальное и современное решение.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение zelenin »

anton_z писал(а): 2018.03.17, 02:32
zelenin писал(а): 2018.03.17, 02:20 это бизнес-знание - тип лежащей в заказе сущности. Указывает оно на местоположение данных или на специфический обсчет элемента заказа - собственно решать приложению.
А с точки зрения проектирования схем реляционных баз - недостаток.
отсутствие констрейнта - конечно недостаток. но а) это очень академично проектировать базу без знания о приложении б) понятие нормализации тоже является частью проектирования базы - предложенный вами вариант это денормализованная в угоду констрейнтам база.

anton_z писал(а): 2018.03.17, 02:32 Для Вас предпочтительнее. Для меня нет. И там не дублирование - элементы заказа разные, семантика разная
ну как же, у элемента заказа нет особой семантики - есть цена, есть количество, есть порождающая сущность. три атрибута. Все остальное - зона ответственности приложения.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение ElisDN »

sm-vasya писал(а): 2018.03.17, 02:18 только куда то профи пропал, видимо ждет пока не профи придут к какому то мнению, а он потом придет и скажет "ну я так и хотел написать, только не успел"
Профи шестичасовой урок за двое суток подготовил и только что провёл. Немного устал.
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

zelenin писал(а): 2018.03.17, 02:43 понятие нормализации тоже является частью проектирования базы - предложенный вами вариант это денормализованная в угоду констрейнтам база.
Какие данные (не метаданные, а именно данные) и где у меня будут дублироваться?
zelenin писал(а): 2018.03.17, 02:43 ну как же, у элемента заказа нет особой семантики - есть цена, есть количество, есть порождающая сущность. три атрибута. Все остальное - зона ответственности приложения.
А я думаю есть. "Продукт в заказе", "Услуга в заказе". "Набор в заказе".
Последний раз редактировалось anton_z 2018.03.17, 02:51, всего редактировалось 1 раз.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение zelenin »

окей, как всегда дискуссия выливается в спор вокруг несформулированного ТЗ: что надо было придумать схему с максимальной защитой целостности или максимально элегантную и гибкую схему.
sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya »

ElisDN писал(а): 2018.03.17, 02:48
sm-vasya писал(а): 2018.03.17, 02:18 только куда то профи пропал, видимо ждет пока не профи придут к какому то мнению, а он потом придет и скажет "ну я так и хотел написать, только не успел"
Профи шестичасовой урок за двое суток подготовил и только что провёл. Немного устал.
а, ну да, ну да
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

zelenin писал(а): 2018.03.17, 02:51 окей, как всегда дискуссия выливается в спор вокруг несформулированного ТЗ: что надо было придумать схему с максимальной защитой целостности или максимально элегантную и гибкую схему.
Да даже не в этом дело. Я не могу понять, что вы имеете ввиду под "лаконичностью" и "элегантностью" схемы. Понятие не очень технические.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение zelenin »

anton_z писал(а): 2018.03.17, 02:50
zelenin писал(а): 2018.03.17, 02:43 понятие нормализации тоже является частью проектирования базы - предложенный вами вариант это денормализованная в угоду констрейнтам база.
Какие данные (не метаданные, а именно данные) и где у меня будут дублироваться?
zelenin писал(а): 2018.03.17, 02:43 ну как же, у элемента заказа нет особой семантики - есть цена, есть количество, есть порождающая сущность. три атрибута. Все остальное - зона ответственности приложения.
А я думаю есть. "Продукт в заказе", "Услуга в заказе". "Набор в заказе".
нет, это просто элемент с тремя атрибутами. разнося элемент по трем таблицам ты искуственно придаешь ему семантику на уровне базы, хотя достаточно того, что семантику будет знать приложение (ведь при добавлении четвертого и пятого типов элементов заказа нам трогать базу не придется).
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

zelenin писал(а): 2018.03.17, 02:55 нет, это просто элемент с тремя атрибутами. разнося элемент по трем таблицам ты искуственно придаешь ему семантику на уровне базы, хотя достаточно того, что семантику будет знать приложение (ведь при добавлении четвертого и пятого типов элементов заказа нам трогать базу не придется).
Ладно, пусть каждый для себя решает. Предлагаю компромисс - это две альтернативных решения, оба со своими преимуществами и недостатками. Принимающий решения должен будет сделать выбор исходя из поставленной задачи.
Последний раз редактировалось anton_z 2018.03.17, 03:02, всего редактировалось 1 раз.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение zelenin »

anton_z писал(а): 2018.03.17, 02:54
zelenin писал(а): 2018.03.17, 02:51 окей, как всегда дискуссия выливается в спор вокруг несформулированного ТЗ: что надо было придумать схему с максимальной защитой целостности или максимально элегантную и гибкую схему.
Да даже не в этом дело. Я не могу понять, что вы имеете ввиду под "лаконичностью" и "элегантностью" схемы. Понятие не очень технические.
но ты конечно читал неоднократно эти эпитеты в технических книгах, лекциях и статьях.
простой понятный код, решающий определенную проблему - в данном случае бесконечную расширяемость без роста схемы БД.
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

zelenin писал(а): 2018.03.17, 03:02 но ты конечно читал неоднократно эти эпитеты в технических книгах, лекциях и статьях.
простой понятный код, решающий определенную проблему - в данном случае бесконечную расширяемость без роста схемы БД.
Не сказал бы, что поддерживаю употребление этих эпитетов в книгах.

Не ну для каждого типа продуктов вы же таблицу будете добавлять? Поэтому не бесконечную.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение ElisDN »

sm-vasya писал(а): 2018.03.16, 17:43 есть витрина в ней товары по категориям. у товара есть название и фиксированные характеристики (например габариты, вес, цена).

есть ЛК пользователя. пользователь видит все свои заказы, счета, акты, сф, платежи и тд. для упрощения берем только 1 документ - например счет. в счете перечислены товары за которые пользователь заплатил, итоговая стоимость
Типовой магазин с типовой БД. Чем https://github.com/ElisDN/yii2-demo-sho ... migrations не устраивает? Сейчас бы сделал составной pk-modification(product_id, id) для полной анрегации и FK бы делал на него.
Последний раз редактировалось ElisDN 2018.03.17, 03:14, всего редактировалось 1 раз.
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

ElisDN писал(а): 2018.03.17, 03:05 Типовой магазин с типовой БД. Чем https://github.com/ElisDN/yii2-demo-sho ... migrations не устраивает?
На Yii - "попсовом, непрофессиональном фреймворке для новичков и любителей фастфуда"?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение zelenin »

anton_z писал(а): 2018.03.17, 02:58
zelenin писал(а): 2018.03.17, 02:55 нет, это просто элемент с тремя атрибутами. разнося элемент по трем таблицам ты искуственно придаешь ему семантику на уровне базы, хотя достаточно того, что семантику будет знать приложение (ведь при добавлении четвертого и пятого типов элементов заказа нам трогать базу не придется).
Ладно, пусть каждый для себя решает. Предлагаю компромисс - это две альтернативных решения, оба со своими преимуществами и недостатками. Принимающий решения должен будет сделать выбор исходя из поставленной задачи.
безусловно согласен. проектирование базы - это не сферический конь. У базы есть бэкграунд - приложение и условия его работы. В хайлоаде вынуждены отказываться от констрейнтов, т.к. это сильно оверхедит. В то же время если есть возможность наложить констрейнт без ущерба он должен быть наложен. Ущерб определяет проектирующий.
sm-vasya
Сообщения: 191
Зарегистрирован: 2015.03.04, 01:12

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение sm-vasya »

ElisDN писал(а): 2018.03.17, 03:05
sm-vasya писал(а): 2018.03.16, 17:43 есть витрина в ней товары по категориям. у товара есть название и фиксированные характеристики (например габариты, вес, цена).

есть ЛК пользователя. пользователь видит все свои заказы, счета, акты, сф, платежи и тд. для упрощения берем только 1 документ - например счет. в счете перечислены товары за которые пользователь заплатил, итоговая стоимость
Типовой магазин с типовой БД. Чем https://github.com/ElisDN/yii2-demo-sho ... migrations не устраивает?
во первых вы обещали симфони, доктрин и коде фест
во вторых вы предлагаете мне эти миграции накатить ?

ну нееееееет.....
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение zelenin »

anton_z писал(а): 2018.03.17, 03:04 Не ну для каждого типа продуктов вы же таблицу будете добавлять? Поэтому не бесконечную.
мы же не про тип продукта, а про тип элемента заказа. как я выше сказал, добавление таблицы для типа продукта проговаривать не надо - это данность.
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Yii2 - атака хейтеров и что делать дальше?

Сообщение anton_z »

zelenin писал(а): 2018.03.17, 03:11 безусловно согласен. проектирование базы - это не сферический конь. У базы есть бэкграунд - приложение и условия его работы. В хайлоаде вынуждены отказываться от констрейнтов, т.к. это сильно оверхедит. В то же время если есть возможность наложить констрейнт без ущерба он должен быть наложен. Ущерб определяет проектирующий.
Хорошо. Спор исчерпан.
Ответить