Как сохранить данные EAV, когда они имеют вложенные объекты / объекты

У меня есть данные JSON, которые имеют вложенные объекты и атрибуты. Например, один объект JSON:

(После json_decode в массив:)

Array
(
    [attributename1] => attributevalue1
    [attributename2] => attributevalue2
    [NestedEntity1] => Array (

                [0] => Array (
                            [attributename1] => attributevalue1
                            [attributename2] => attributevalue2
                             )
                [1] => Array (
                            [attributename1] => attributevalue1
                            [attributename2] => attributevalue2
                             )
                [2] => Array (
                            [attributename1] => attributevalue1
                            [attributename2] => attributevalue2
                            [NestedEntity1.2] => Array (

                                    [0] => Array (
                                                [attributename1] => attributevalue1
                                                [attributename2] => attributevalue2
                                                 )
                                    [1] => Array (
                                                [attributename1] => attributevalue1
                                                [attributename2] => attributevalue2
                                                 )

                             )

                  )

) )

Примечание: сущности могут быть далее вложены во вложенные сущности

Мой вопрос: как я могу сохранить эти данные в MySQL?

Если это просто атрибуты, это легко с таблицей в MySQL, настроенной для данных EAV. Но если у меня есть вложенные объекты, я совершенно заблудился, как их хранить. Важно то, что мне нужно было бы иметь возможность поворачивать таблицу и делать запросы типа "ВЫБРАТЬ * ОТ СУЩНОСТИ, ГДЕ Б, Б" и т. Д.

Я подозреваю, что мне, возможно, придется разделить вложенные сущности на новые собственные таблицы, а затем создать отношение "один ко многим" между "родителем" и "потомком". Однако: (1) я понятия не имею, как сделать это так, чтобы можно было разместить любые данные json. Это, вероятно, означает, что какая-то программа должна автоматически обнаруживать вложенный объект. (2) Хотя я открыт для заполнения данных из одного объекта json в несколько таблиц, каждая из которых представляет каждую (вложенную) сущность, я подумал, возможно ли заполнить все в одну таблицу в MySQL. Это предотвратит необходимость создания новых схем таблиц, когда возникнет такая необходимость.

Если требуется программирование, пожалуйста, если возможно, порекомендуйте что-нибудь на PHP.

0 ответов

Другие вопросы по тегам