2013-09-05 2 views
1

У меня в основном есть куча объектов с полями;Какую модель базы данных следует использовать для хранения этого формата данных?

строка идентификатор данного экземпляра объекта id : "banana"
словаря строковых ключей и значений data : {}
массив идентификаторов экземпляров, связанных с этим одним friends: ["apple", "orange" ]
массив связанных (по-другому) экземпляра идентификаторами. followers: ["grapefuit"]

Возможно, вы указали, что эти данные будут моделировать сеть Twitter.
В течение срока службы моих данных (которые будут выходить за рамки любого конкретного исполнения программы) количество экземпляров и данных, хранящихся в полях, будет меняться (ожидается, что оно будет расти), поэтому я хотел бы сохранить все эти данные в база данных MySQL должна взаимодействовать с PHP-скриптом.

Я полный новичок в мире баз данных, но я несколько понимаю модель таблицы и структуру запросов.
Как я должен структурировать базу данных для этой конкретной проблемы?

+0

, пожалуйста, вам нужно больше объяснить, какие сущности, которые вы хотите хранить в своей информации: друзья, люди,? –

ответ

1

При работе с MySQL-подобной базой данных необходимо помнить, что вам следует избегать таких вещей, как dicts и массивы в определенном столбце. Причина в том, что это делает запрос на эти значения ужасным.

Что бы я сделал, это, например, схема «Друзья» с двумя столбцами, FriendA и FriendB. Для каждой пары друзей у вас есть эта строка в этой базе данных. Вы можете сделать то же самое с «Последователями», иметь столбец «Последователь» и «Последователь».

Теперь запрос по этим таблицам просто требует объединения, и что еще более важно, если два другу получить не имеющие друг или кто-то решает неследовать кто-то еще, это только один удалить вместо двух (а не массивов!)

И Конечно, если вы не планируете иметь неструктурированные данные ключа/значения, расширьте это до полной схемы.

Смежные вопросы