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

У меня есть данные 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...