|
|
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
Допустим есть несколько типов сущностей с общими атрибутами + уникальные доп. поля. + возможность в будущем расширять. Я предлагаю запилить (что в принципе я и сделал и что уже работает!) это все по разным таблицам, что как я думаю, избавит от ненужного атрибута "type" (если для бд это в принципе не особо критично (не нужное поле в байт) то при переводе в json это ой как кусает). Мой вариант: Код: sql 1. 2. Против того что предлагают пхпшники со "стажем" Код: sql 1. 2. 3. Т.е. еще и подгонять некоторые "схожие" атрибуты под общий шаблон: "texture": "1.png" к "textures": ["1.png"] и пр. Просто интересно мнение "толпы" со стороны что лучше и почему ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 09:18 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
jenergyТ.е. еще и подгонять некоторые "схожие" атрибуты под общий шаблон: "texture": "1.png" к "textures": ["1.png"] и пр. Просто интересно мнение "толпы" со стороны что лучше и почему ;) Лучше как удобней в данном конкретном случае. А так. Отделите данные сущности, от представления в JSON. Например: В БД храните как вам удобно, а клиенту отдаете как удобно вашим PHP-ника ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 09:32 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
Так вот в том то и дело что клиент я;) это они мне хотят отдавать так как им удобно трансформировать в "json". Просто я не понимаю какой смысл хранить все типы сущностей в одной таблице которую потом придется расширять добавляя дополнительные атрибуты... Т.е. по сути они все затачивают не под "логичность" а под конкретный фреймворк или скорее всего чтобы не писать трансформатор в json по мне так это все бы развернулось со списка трансформируемого в json в цикл пробегающий по таблицам трансформирующем n списков пара тройка лишних строк кода при учете что этот документ формируется один раз и сохраняется в кэш а вот раздается миллионам клиентов ;) Или я дурак и чего-то не понимаю в их phpшной кухне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 10:02 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
jenergyТак вот в том то и дело что клиент я ... Тогда почитайте ТЗ которое вы дали исполнителю. Любое не согласованное отступление от ТЗ - ... . Ну надеюсь вы уловили мысль. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 10:17 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
Злой БобрjenergyТак вот в том то и дело что клиент я ... Тогда почитайте ТЗ которое вы дали исполнителю. Любое не согласованное отступление от ТЗ - ... . Ну надеюсь вы уловили мысль. Удачи. Клиент в смысле разработчик клиентского приложения ;) Вопрос не в самом ТЗ а в проектировании как правильней сделать и логичнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 10:46 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
jenergy, Правильно - так как написано в ТЗ. Даже если вы считаете по другому. И это доказано практикой. Совсем другое дело когда клиент говорит вам - "хочу что б все работало, а как ты это сделаешь меня не волнует". Тут вы можете уже использовать свой опыт. Но вы также должны понимать специфику работы клиента. Т.е. если вы сделаете по теории правильно, а на практике окажется что это не совсем то что нужно - будьте готовы исправлять за бесплатно. Потому как вы согласившись получили не только свободу действий, но и взяли на себя ответственность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 11:22 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
jenergyКлиент в смысле разработчик клиентского приложения ;) Вопрос не в самом ТЗ а в проектировании как правильней сделать и логичнее. Я руководствуюсь критерием - много ли единообразных обработок? Если в большинстве случаев сущности разных типов обрабатываются "вперемешку" - имеет смысл делать одну таблицу, если таких случаев нет или совсем мало - лучше разделять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 11:34 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
jenergyТак вот в том то и дело что клиент я;) это они мне хотят отдавать так как им удобно трансформировать в "json". Просто я не понимаю какой смысл хранить все типы сущностей в одной таблице которую потом придется расширять добавляя дополнительные атрибуты... Т.е. по сути они все затачивают не под "логичность" а под конкретный фреймворк или скорее всего чтобы не писать трансформатор в json по мне так это все бы развернулось со списка трансформируемого в json в цикл пробегающий по таблицам трансформирующем n списков пара тройка лишних строк кода при учете что этот документ формируется один раз и сохраняется в кэш а вот раздается миллионам клиентов ;) Или я дурак и чего-то не понимаю в их phpшной кухне. Да все норм. PHP-ники просто хотят себе меньше работы. Написать один раз, а там фронтендщики пусть сами разбираются. В принципе им ни то не мешает хранить как им удобно, а отдавать так как вам удобно. Так что со спокойной совестью гните свою линию. Если "формат" JSON нужен для вас, то вы и диктуйте формат, который вам удобен. А как PHP-ники будут хранить в БД, это их головная боль, а не ваша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 12:06 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
По сабжу нужен EAV. Две таблицы: справочник EAV-параметров и их настроек и таблица хранения собственно данных. Никаких полей добавлять на лету не нужно. Добавляются только записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 15:39 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
LSVПо сабжу нужен EAV. Две таблицы: справочник EAV-параметров и их настроек и таблица хранения собственно данных. Никаких полей добавлять на лету не нужно. Добавляются только записи. EAV на JSON'е - это гениально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 16:17 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
LSVПо сабжу нужен EAV. Две таблицы: справочник EAV-параметров и их настроек и таблица хранения собственно данных. Даешь EAV всегда и везде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 18:08 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
Вбейте себе в мозг: EAV - это мина замедленного действия и рванет однажды - мало не покажется, и после будет подрываться, пока не осознаете. Когда вам придется из разных записей EAV выскребать атрибуты, относящиеся к одной сущности, точнее - записи в сущности 3NF и приджойнивать к другой сущности, а потом еще и еще - здравствуй 3-этажные запросы в полный рост и тормоза при аналитических запросах. При OLTP-задачах попробуйте соблюсти и контролировать функциональную зависимость и ветвистые правила бизнес-проверок касательно значений атрибутов. EAV оправдан там, где мириады разношерстных микросущностей, создание которых и опрограммирование займет невероятно количество времени, особенно если время жизни проекта относительно небольшое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2015, 20:38 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
jenergy, предожите PHP-шникам хранить данные в MongoDB и меняйте, расширяйте как Вам угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2015, 14:40 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
1) Проблемы могут быть если типы сущностей наследуются. Если entityType2 является каким то например уточнением от entityType1, то, по идее, в результат поиска по entityType1 могут войти строки из entityType2, а это уже UNION. С одной таблицей проще. 2) Пока не понял, почему JSON не хранить прямо как JSON. Например PostgreSQL может и хранить и, вроде бы, даже индексы по содержимому JSON полей строить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2015, 23:08 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
Izya, да и MySQL может . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2015, 15:26 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
Izya2) Пока не понял, почему JSON не хранить прямо как JSON. Например PostgreSQL может и хранить и, вроде бы, даже индексы по содержимому JSON полей строить. Потому что строить запросы к JSON-полям в PostgreSQL будет то еще приключение. Как я и говорил раньше - тут проблема не техническая, а организационная. Просто PHP лень. А так они могут хранить как им удобно, а отдавать как удобно веб-программисту. Никаких противопоказаний нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2015, 07:06 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Вы общались с ТСом, что так уверенно за него говорите? Про всякие-разные "запросы" в его постах нет вообще ни слова, поэтому я и спрашиваю. Как вариант, вдруг там таблицы с двумя полями (идентификатор сущности ID, описание сущности JSON) достаточно будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2015, 07:43 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
babonaВбейте себе в мозг: EAV - это мина замедленного действия и рванет однажды - мало не покажется, и после будет подрываться, пока не осознаете. Когда вам придется из разных записей EAV выскребать атрибуты, относящиеся к одной сущности, точнее - записи в сущности 3NF и приджойнивать к другой сущности, а потом еще и еще - здравствуй 3-этажные запросы в полный рост и тормоза при аналитических запросах. При OLTP-задачах попробуйте соблюсти и контролировать функциональную зависимость и ветвистые правила бизнес-проверок касательно значений атрибутов. EAV оправдан там, где мириады разношерстных микросущностей, создание которых и опрограммирование займет невероятно количество времени, особенно если время жизни проекта относительно небольшое.Звал в гости, а адрес не сказал (с) :) Поведай нам убогим, что именно нужно делать по сабжу. Только не надо тут про советы а-ля nosql или JSON+Postgre=круть. Давай-ка реальное решение для произвольной БД и не_узкоспециализированных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2015, 09:54 |
|
||
|
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
|
|||
|---|---|---|---|
|
#18+
Izya mad_nazgul, Вы общались с ТСом, что так уверенно за него говорите? Про всякие-разные "запросы" в его постах нет вообще ни слова, поэтому я и спрашиваю. Как вариант, вдруг там таблицы с двумя полями (идентификатор сущности ID, описание сущности JSON) достаточно будет? Здесь же в форуме. Если вы почитаете, то увидите, что ТС попросил определенный формат JSON. Его право, ему так удобнее писать клиент. PHP-ники предложили свой формат, который удобен им. Насколько я понял, чтобы меньше делать, просто тупо отдавать то что получили из БД. Мой вывод - PHP-ники лентяи, т.к. им никто не запрещает хранит данные как им удобно, а отдавать так как удобно фронтендщику. задача простая, хотя и немного нудная. Поэтому и советую ТС настаивать на своем решении. Мотивиру тем, что они (PHP-ники) могут у себя на бакенде хранить как им заблагорассудится, а отдавать как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2015, 13:09 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39050573&tid=1540481]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 500ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...