От SQL Server к MONGODB: проблема проектирования - PullRequest
0 голосов
/ 26 августа 2011

Впервые я хочу увидеть другую базу данных, кроме SQL Server, для своей разработки.

MongoDB - хорошая альтернатива для моего проекта.

Что трудно понять, так это "дизайнMONGODB для меня.

Пользователь (таблица)

Id
Name
Address

Друзья (таблица)

IdUser
IdFriends

С помощью этой таблицы SQL я хочу разрешить пользователюстал другом другого пользователя, такого как Facebook.

Какой лучший дизайн для MongoDB?

1 Ответ

3 голосов
/ 26 августа 2011

Рассмотрите возможность вложения идентификаторов друзей в User документ:

{
    _id: 7,
    name: "Johnny",
    address: "Acme St.",
    friends: [8, 9, 15]
}

С одной стороны, вам не нужны объединения для извлечения друзей (по крайней мере идентификаторы), потому что все вложено в один документсхема выглядит приятнее.С другой стороны - чтобы получить настоящих друзей, вы столкнулись с проблемой N + 1.Однако выборка по id довольно дешевая, также рассмотрите возможность кэширования.

...