За последние 24 часа нас посетили 97119 программистов и 2676 роботов. Сейчас ищут 1535 программистов ...

Хранение произвольных данных

Тема в разделе "Прочее", создана пользователем [vs], 1 авг 2010.

?

Как вам?

  1. Фтопку

    1 голосов
    100,0%
  2. Боян

    0 голосов
    0,0%
  3. Ничотак

    0 голосов
    0,0%
  4. Супер

    0 голосов
    0,0%
  1. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Типа таблица
    Код (Text):
    1. +------+------------+
    2. |  key |    data    |
    3. +------+------------+
    4. | tree |{"page":{...|
    5. +------+------------+
    6. | .... | .......... |
    key - varchar, data - blob.
    Доступ через объект с минимумом методов - set, get, check, remove. Результаты get и check кешируются в переменную, для быстрого последующего доступа.
    Целесообразно ли использовать такое?
     
  2. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    если реализуешь - выложишь?
     
  3. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    не понятно. Покажи пример кода, использующий этот сторедж?
     
  4. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    я хочу выбрать те keys, у которых page.foo.bar >= 48
     
  5. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    а это не велосипед хранилищ типа key->value , а что хранить в blob ? почему не на диске?
    во http://rediska.geometria-lab.net/
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Костян
    Что-то типа первого memcached, только хранение данных в mysql.
    не, там в примере JSON для примера только. Тип поля - BLOB, который работает быстрее чем TEXT, но никаких операций с ним провести нельзя.
    Суть в том, что обычно для хранения любых данных заводится таблица в БД со своей структурой. Если это данные небольшие по объему, например, настройки, перечень разделов сайта, какая-нибудь таблица групп с правами доступа, то можно хранить их целиком в строках вот такой вот таблицы. Дергать целиком и выбирать нужные значения или выполнять сортировку в скрипте. Вместо того, чтобы заводить отдельную таблицу.

    Ensiferum
    обязательно)
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Редис это хорошо, но встречается он на хостингах еще реже, чем memcache.

    upd. и речь идет о постоянном хранении, а не кэшировании.
     
  8. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    баян, вп использует такой метод для хранения настроек :)

    там даже пошли дальше, есть поле autoload - свеобразный прекеш
     
  9. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    в мадженте есть таблица core_config_data (scope, scope_id, path, value)

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

    Чем тебе не нравится нормальная модель + кеширование?
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Работать идите, хрен ли вы страдаете? =)
    Или гулять
     
  11. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    +1, выходной же.
    Но я вчера погулял, сегодня дела домашние
     
  12. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    есть такая буква.
    имею oid и objtype
    все равно требуется ненормализовывать для поиска.
    помимо части полей в основной таблице потребовалась дополнительная вида
    oid
    paramname
    paramvalue
    поскольку у разных типов объектов разное кол-во разных полей, по которым требуется искать, и не надо их все добавлять в одну таблицу.

    структура имеет смысл при
    а) неизвестных видах данных и сколько когда их будет.
    б) стандартной обработке разных типов данных. хотя тут и разными таблицами можно обойтись.

    в общем надо хорошо подумать что тебе надо чтобы быть увереным.
     
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Строки удобнее создавать и удалять, чем таблицы. Похоже, кроме очевидной потери возможности обработки данных средствами sql, минусов у этой системы нет, буду юзать :p