powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
19 сообщений из 19, страница 1 из 1
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39048681
jenergy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим есть несколько типов сущностей с общими атрибутами + уникальные доп. поля. + возможность в будущем расширять.
Я предлагаю запилить (что в принципе я и сделал и что уже работает!) это все по разным таблицам, что как я думаю, избавит от ненужного атрибута "type" (если для бд это в принципе не особо критично (не нужное поле в байт) то при переводе в json это ой как кусает).
Мой вариант:
Код: sql
1.
2.
"entityType1": [ { "id": 1, "texture": "1.png"},  { "id": 2 ...}]
"entityType2": [ { "id": 3 "textures": ["1.png", "2.png" ]},  { "id": 4 ...}]


Против того что предлагают пхпшники со "стажем"
Код: sql
1.
2.
3.
"entities": [ 
 { type: "entityType1", "id": 1, "textures": ["1.png"] }, { type: "entityType2", "id": 3, "textures": ["1.png", "2.png" ] }
]


Т.е. еще и подгонять некоторые "схожие" атрибуты под общий шаблон: "texture": "1.png" к "textures": ["1.png"] и пр.

Просто интересно мнение "толпы" со стороны что лучше и почему ;)
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39048703
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenergyТ.е. еще и подгонять некоторые "схожие" атрибуты под общий шаблон: "texture": "1.png" к "textures": ["1.png"] и пр.
Просто интересно мнение "толпы" со стороны что лучше и почему ;)

Лучше как удобней в данном конкретном случае.

А так.
Отделите данные сущности, от представления в JSON.
Например:
В БД храните как вам удобно, а клиенту отдаете как удобно вашим PHP-ника
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39048740
jenergy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так вот в том то и дело что клиент я;) это они мне хотят отдавать так как им удобно трансформировать в "json".
Просто я не понимаю какой смысл хранить все типы сущностей в одной таблице которую потом придется расширять добавляя дополнительные атрибуты... Т.е. по сути они все затачивают не под "логичность" а под конкретный фреймворк или скорее всего чтобы не писать трансформатор в json по мне так это все бы развернулось со списка трансформируемого в json в цикл пробегающий по таблицам трансформирующем n списков пара тройка лишних строк кода при учете что этот документ формируется один раз и сохраняется в кэш а вот раздается миллионам клиентов ;)
Или я дурак и чего-то не понимаю в их phpшной кухне.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39048771
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenergyТак вот в том то и дело что клиент я ...
Тогда почитайте ТЗ которое вы дали исполнителю. Любое не согласованное отступление от ТЗ - ... . Ну надеюсь вы уловили мысль. Удачи.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39048820
jenergy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой БобрjenergyТак вот в том то и дело что клиент я ...
Тогда почитайте ТЗ которое вы дали исполнителю. Любое не согласованное отступление от ТЗ - ... . Ну надеюсь вы уловили мысль. Удачи.
Клиент в смысле разработчик клиентского приложения ;)
Вопрос не в самом ТЗ а в проектировании как правильней сделать и логичнее.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39048890
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenergy,

Правильно - так как написано в ТЗ. Даже если вы считаете по другому. И это доказано практикой.
Совсем другое дело когда клиент говорит вам - "хочу что б все работало, а как ты это сделаешь меня не волнует". Тут вы можете уже использовать свой опыт. Но вы также должны понимать специфику работы клиента. Т.е. если вы сделаете по теории правильно, а на практике окажется что это не совсем то что нужно - будьте готовы исправлять за бесплатно. Потому как вы согласившись получили не только свободу действий, но и взяли на себя ответственность.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39048916
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenergyКлиент в смысле разработчик клиентского приложения ;)
Вопрос не в самом ТЗ а в проектировании как правильней сделать и логичнее.

Я руководствуюсь критерием - много ли единообразных обработок? Если в большинстве случаев сущности разных типов обрабатываются "вперемешку" - имеет смысл делать одну таблицу, если таких случаев нет или совсем мало - лучше разделять.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39048986
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenergyТак вот в том то и дело что клиент я;) это они мне хотят отдавать так как им удобно трансформировать в "json".
Просто я не понимаю какой смысл хранить все типы сущностей в одной таблице которую потом придется расширять добавляя дополнительные атрибуты... Т.е. по сути они все затачивают не под "логичность" а под конкретный фреймворк или скорее всего чтобы не писать трансформатор в json по мне так это все бы развернулось со списка трансформируемого в json в цикл пробегающий по таблицам трансформирующем n списков пара тройка лишних строк кода при учете что этот документ формируется один раз и сохраняется в кэш а вот раздается миллионам клиентов ;)
Или я дурак и чего-то не понимаю в их phpшной кухне.

Да все норм.
PHP-ники просто хотят себе меньше работы. Написать один раз, а там фронтендщики пусть сами разбираются.

В принципе им ни то не мешает хранить как им удобно, а отдавать так как вам удобно.
Так что со спокойной совестью гните свою линию.

Если "формат" JSON нужен для вас, то вы и диктуйте формат, который вам удобен.
А как PHP-ники будут хранить в БД, это их головная боль, а не ваша.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39049334
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сабжу нужен EAV.
Две таблицы: справочник EAV-параметров и их настроек и таблица хранения собственно данных.
Никаких полей добавлять на лету не нужно. Добавляются только записи.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39049398
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVПо сабжу нужен EAV.
Две таблицы: справочник EAV-параметров и их настроек и таблица хранения собственно данных.
Никаких полей добавлять на лету не нужно. Добавляются только записи.

EAV на JSON'е - это гениально.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39049567
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVПо сабжу нужен EAV.
Две таблицы: справочник EAV-параметров и их настроек и таблица хранения собственно данных.


Даешь EAV всегда и везде!
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39049687
babona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вбейте себе в мозг: EAV - это мина замедленного действия и рванет однажды - мало не покажется, и после будет подрываться, пока не осознаете.

Когда вам придется из разных записей EAV выскребать атрибуты, относящиеся к одной сущности, точнее - записи в сущности 3NF и приджойнивать к другой сущности, а потом еще и еще - здравствуй 3-этажные запросы в полный рост и тормоза при аналитических запросах.
При OLTP-задачах попробуйте соблюсти и контролировать функциональную зависимость и ветвистые правила бизнес-проверок касательно значений атрибутов.


EAV оправдан там, где мириады разношерстных микросущностей, создание которых и опрограммирование займет невероятно количество времени, особенно если время жизни проекта относительно небольшое.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39049904
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenergy, предожите PHP-шникам хранить данные в MongoDB и меняйте, расширяйте как Вам угодно.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39050081
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Проблемы могут быть если типы сущностей наследуются. Если entityType2 является каким то например уточнением от entityType1, то, по идее, в результат поиска по entityType1 могут войти строки из entityType2, а это уже UNION. С одной таблицей проще.
2) Пока не понял, почему JSON не хранить прямо как JSON. Например PostgreSQL может и хранить и, вроде бы, даже индексы по содержимому JSON полей строить.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39050281
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya, да и MySQL может .
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39050515
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya2) Пока не понял, почему JSON не хранить прямо как JSON. Например PostgreSQL может и хранить и, вроде бы, даже индексы по содержимому JSON полей строить.

Потому что строить запросы к JSON-полям в PostgreSQL будет то еще приключение.
Как я и говорил раньше - тут проблема не техническая, а организационная.
Просто PHP лень.
А так они могут хранить как им удобно, а отдавать как удобно веб-программисту.
Никаких противопоказаний нет.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39050522
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

Вы общались с ТСом, что так уверенно за него говорите?

Про всякие-разные "запросы" в его постах нет вообще ни слова, поэтому я и спрашиваю.
Как вариант, вдруг там таблицы с двумя полями (идентификатор сущности ID, описание сущности JSON) достаточно будет?
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39050573
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
babonaВбейте себе в мозг: EAV - это мина замедленного действия и рванет однажды - мало не покажется, и после будет подрываться, пока не осознаете.

Когда вам придется из разных записей EAV выскребать атрибуты, относящиеся к одной сущности, точнее - записи в сущности 3NF и приджойнивать к другой сущности, а потом еще и еще - здравствуй 3-этажные запросы в полный рост и тормоза при аналитических запросах.
При OLTP-задачах попробуйте соблюсти и контролировать функциональную зависимость и ветвистые правила бизнес-проверок касательно значений атрибутов.


EAV оправдан там, где мириады разношерстных микросущностей, создание которых и опрограммирование займет невероятно количество времени, особенно если время жизни проекта относительно небольшое.Звал в гости, а адрес не сказал (с)
:)

Поведай нам убогим, что именно нужно делать по сабжу.
Только не надо тут про советы а-ля nosql или JSON+Postgre=круть.
Давай-ка реальное решение для произвольной БД и не_узкоспециализированных задач.
...
Рейтинг: 0 / 0
Расширяемость сущностей одна таблица с кучей столбцов против таблицы на сущность
    #39050776
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya mad_nazgul,

Вы общались с ТСом, что так уверенно за него говорите?

Про всякие-разные "запросы" в его постах нет вообще ни слова, поэтому я и спрашиваю.
Как вариант, вдруг там таблицы с двумя полями (идентификатор сущности ID, описание сущности JSON) достаточно будет?

Здесь же в форуме.

Если вы почитаете, то увидите, что ТС попросил определенный формат JSON.
Его право, ему так удобнее писать клиент.

PHP-ники предложили свой формат, который удобен им.
Насколько я понял, чтобы меньше делать, просто тупо отдавать то что получили из БД.

Мой вывод -
PHP-ники лентяи, т.к. им никто не запрещает хранит данные как им удобно, а отдавать так как удобно фронтендщику.
задача простая, хотя и немного нудная.

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


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