Много полей VS все в одно

Moric

Новичок
Задача
Есть объект с большим кол-вом (30-40) полей, часть из которых может отсутствовать == быть пустыми. Требуется сохранять/изменять/выбирать объект, делать выборки по полям.

Вопрос
Какую таблицу реализовать под объект?

Решение 1
Создать таблицу с большим кол-вом полей и записывать все в нее.
+ Запись/изменение/чтение происходит без дополнительных телодвижений
+ Выборку можно выполнять на уровне бд
- На одну запись уходит много памяти (сохранение и вывод), часть из которой никогда не будет использована.

Решение 2
Создать несколько основных полей и одно поле, в которое сохранять все остальное сжатое в json/serialize.
+ Памяти теряется меньше.
- Необходимо производить сжатие и распаковку данных каждый раз перед записью и чтением.
- Для выборки нужно считывать данные и делать выборку скриптом.

Хочу узнать общественное мнение и выслушать комментарии.
 

tz-lom

Продвинутый новичок
это что же за таблица такая?
возможно ты напихал в неё слишком много разных полей и стоит её разбить на несколько?
Для выборки нужно считывать данные и делать выборку скриптом.
так явно не стоит делать
 

Вурдалак

Продвинутый новичок
json/serialize ничего не сжимает, а наоборот.

Конечно первый вариант. В крайнем случае можно попытаться выделить новую сущность. Например, из User можно выделить Profile. Да и 30-40 полей в общем-то мне не кажется большой таблицей.
 

weregod

unserializer
вы за раз собрались миллион записей вынимать?
так же сжатые данные будет крайне неудобно редактировать напрямую в бд, а этого иногда очень хочется
 

Moric

Новичок
Вурдалак
Извиняюсь, не верно выразился, конечно не сжимать, а упаковывать.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
iceman
+id объекта туда же, иначе как потом их различать меж собой)
 
Сверху