Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: О сериализации в поле РБД
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » О сериализации в поле РБД

Страниц (1): [1]
 

1. Anchor - 17 Октября, 2014 - 10:47:51 - перейти к сообщению
Всех приветствую. Что считаете, "дурно" ли записывать/считывать в одну ячейку (Реляционная БД), сериализованный(в строку) ассоциативный массив? Или все же разносить эти данные по полям/таблицам?
2. Мелкий - 17 Октября, 2014 - 11:00:23 - перейти к сообщению
Сначала нормальная форма.
И только потом, когда можете чётко и внятно аргументировать, почему здесь нормальная форма не нужна, что знаете все минусы этого варианта и есть существенные плюсы - пишете сериализованный вид.
3. Anchor - 18 Октября, 2014 - 10:51:47 - перейти к сообщению
Вот у меня такая ерунда, любопытно было бы услышать мнение. Массив который нужно хранить, с ДИНАМИЧЕСКИМИ данными и КАЖДЫЙ элемент может как отстутствовать так и присутствовать. Помимо этого названия ключей массива - также невозможно изначально определить однозначно. Например есть какой-нибудь Офис, и там комнаты могут носить свои специфичные названия.

--
1.Есть таблица "Коммерческая недвижимость".
2.Есть поле "Площадь". Это поле может быть "динамическим". Т.е. варианты такие:

CODE (htmlphp):
скопировать код в буфер обмена
  1. 0=>"площадь кухни"
  2. 1=>"площадь комнат" { //произвольное число (комнат)
  3.         0=>12
  4.         1=>34 // тут также может появитья описание(я) комнаты, тип, т.е. еще один под-массив. Хотя, возможно, это не нужно сюда впихивать. Но если сериализовавывать - то было бы удобно, т.к. данные эти - динамические
  5. }
  6.  


Либо, ВСЕ это может быть элементом массива "Этажи". И на каждом этаже будет такой массив
CODE (htmlphp):
скопировать код в буфер обмена
  1. 0=>"Этаж1" {
  2.         1=>"площадь комнат" {
  3.                 ...
  4.         }
  5. }
4. Мелкий - 18 Октября, 2014 - 11:23:27 - перейти к сообщению
Мне добавить нечего, сначала нормальная форма.
Возможно, вам вообще не нужна РСУБД, на них свет клином не сошёлся.
5. Anchor - 20 Октября, 2014 - 11:48:32 - перейти к сообщению
Мелкий пишет:
Возможно, вам вообще не нужна РСУБД, на них свет клином не сошёлся.

Ну у меня это Компонент к существующей CMS=)) А там MySQL, так что только РБД=)
6. tuareg - 20 Октября, 2014 - 15:25:16 - перейти к сообщению
Может про EAV почитать. С другой стороны если Вам по этим параметрам искать(фильтровать) не надо, то можно и как строку хранить.
7. Anchor - 21 Октября, 2014 - 17:30:26 - перейти к сообщению
tuareg пишет:
С другой стороны если Вам по этим параметрам искать(фильтровать) не надо, то можно и как строку хранить.

Фильтровать нужно только по Общей площади. А она вынесена в отдельное поле.

tuareg пишет:
Может про EAV почитать.

Хмм. любопытная штука

 

Powered by ExBB FM 1.0 RC1