Приветствую. Например, в базе данных мне нужно хранить объекты следующего вида:
{
"id": 1,
"order": 0,
"descr": {
"nom": "Слово", "gen": "Слова", "abl": "Слове"
}
"virtual": 1
}
Если бы не было поля descr, то всё тривиально - каждому ключу соответствует столбец в таблице. Но как хранить descr? Можно, конечно, просто хранить в таблице json, но тогда таблица не будет соответствовать правилу о том, что каждая ячейка должна хранить единственное значение.
Если количество ячеек в массиве descr будет постоянным, можно каждому значению выделить колонку, с поиском значений будет проще.
Если количество ячеек будет разным и поиск по ним производиться не будет, то я бы хранил его в первоначальном виде.
Зависит от того, что вы собираетесь делать с вашими объектами. Если просто записать json в базу - прочитать json из базы, то можно ничего не делать, хранить весь json как одну строку. А если надо распарсить, разложить в БД по частям и обрабатывать части отдельно (например, делать поиск по атрибутам из descr), то сделайте две связанные таблицы. Первая будет хранить сам объект и иметь поля id, order, virtual, а вторая будет хранить описания. Поля будут, соответственно:
id - первичный ключ, его надо будет генерировать отдельноobject_id - внешний ключ, ссылка на объектattribute - для названий атрибутов (nom, gen, abl)value - для значений (Слово, Слова, Слове)Для вашего json у вас будет, соответственно, одна строка в таблице объектов и 3 связанные строки в таблице описаний.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости