2013-04-22 3 views
1

Я разрабатываю приложение с использованием F3, в котором создание отчетов является суб-приложением. Теперь у меня есть отчеты в виде json-данных, которые будут большими.Дизайн базы данных | PHP-Mysql | JSON

Проблема в том, что данные JSON находятся на разных уровнях и трудно определить схему для нее.

Теперь, любое предложение о том, как я должен хранить JSON, как файл? или в базе данных mysql как blob или текст?

Примечание: Я хотел бы получить данные JSON только для создания отчета (PDF, Excel и т. Д.). Я никогда не изменяю его.

Thank you, Sash.

+0

Вы храните его как хотите. Его 100% ваш личный выбор. – Svetoslav

+0

JSON обычно имеет установленный формат/структуру. Большинство людей используют базы данных, но они не хранят JSON в качестве текста, они извлекают значения из JSON и сохраняют их в соответствующих таблицах/полях. – MatthewMcGovern

+0

@ Светлион Хмм. Меня беспокоит производительность здесь. Любая идея, как большие приложения хранят данные, которые используются для генерации отчетов? –

ответ

1

Хорошо, если вы собираетесь использовать, чтобы данные в формате JSON, как только для чтения материала, чтобы построить PDF в том роде зависит от целого ряда вещей:

  • Сколько JSON отформатированных объектов являются мы говорим? Хранение их в строках не является большой проблемой (как вопрос, который я обозначил как повторяющиеся состояния). Конечно, если мы говорим о тысячах строк JSON, вам нужно будет индексировать эту таблицу (эти таблицы), и для этого требуется либо уникальный идентификатор, который не связан с фактическими данными, либо синтаксический анализ строки, и использование некоторых свойств, которые вы может использовать для запроса.

  • Вы говорите, что объекты JSON довольно большие (потому что вы говорите о полках TEXT/BLOB), которые могут содержать до 65 тыс. Символов ... Вы уверены, что собираетесь использовать даже половину этой суммы символов, в 20% случаев? Мне действительно кажется, что это излишний, если честно

  • Насколько переменна структура JSON? делает ли один объект простым литералом объекта JS-стиля, а другой - вложенным в 7-уровневый объект? Если все объекты имеют определенную структуру, вероятно, вам будет лучше строить схему.

  • Я не знаю, нравится ли вам это, или это вариант в вашем случае, но так как вы не собираетесь писать на эту таблицу слишком часто, и это форматирование al JSON, почему бы и нет заглянуть в другую систему БД? Это было какое-то время, но я работал с mongoDB, который может быть вам полезен.

Резюме: Если у вас есть только, скажем, ~ 10 объектов JSON: просто хранить их в виде простой таблицы, как VARCHARS (или TEXT), добавьте поле идентификатора, если потребности должны. Если вы можете, простой файл тоже будет делать. Не нужно подключаться к серверу MySQL, нет необходимости во всех этих накладных расходах, только file_get_contents('JSON_DATA1.json'); может сделать трюк. Разумеется, при необходимости соблюдайте меры предосторожности.
Если у вас есть тонны объектов, постройте схему MySQL ... если у объектов нет действительно нет сходства в отношении формата (нет аналогичных свойств @ на том же уровне)
Посмотрите на альтернативы, такие как mongoDB и , возможно, другие базы данных NoSQL. Они могут вам пригодиться. Например, Mongo хранит свои данные в документах в стиле JSON и с ними довольно легко работать, потому что это JavaScript-интерфейс.