2013-05-21 2 views
2

Я пытаюсь создать эффективную и масштабируемую модель данных для приложения, которое я пишу. Я прихожу к общей проблеме, поскольку дизайн идет, пример, приведенный ниже, иллюстрирует мою проблему хорошо:Решения по проектированию базы данных

Я хочу создать таблицу пользователей с полем идентификатора первичного ключа и, как и Facebook, они имеют друзей, которые также являются пользователями. было бы лучше иметь поле в таблице пользователей, называемое «список друзей», в котором перечислены все идентификаторы друзей пользователей или есть таблица для каждого пользователя, в которой перечислены все их друзья, или, возможно, какой-то другой вариант, который у меня не был все же?

Мне нужно иметь эффективный способ вытащить всю информацию друзей друзей, такую ​​как адреса имен и т. Д. Но я боюсь, что у меня есть строка идентификаторов, которые я должен перебирать, а затем присоединяюсь к таблице пользователей, не будет ужасно эффективным, особенно если у меня есть многораздельная база данных. Это конкретная ситуация, однако я вижу обобщение этой проблемы в другом месте моего приложения.

Любая помощь очень ценится. Спасибо!

+4

Вы хотите отдельную таблицу, которая связывает один идентификатор пользователя к другому. НЕ выполняйте ни одну из предложенных вами вещей (все друзья в одном столбце или отдельные таблицы для каждого пользователя) – Joe

+0

Я думал о том, что, однако, эта таблица была бы довольно большой? например, у меня 1500 друзей на Facebook, сопоставление всех отношений означает, что соединение на этой таблице будет неэффективным? –

+1

Это то, что реляционные базы данных * делают *. Если вы собираетесь использовать СУРБД, используйте ее сильные стороны. – Joe

ответ

1

Вы могли бы сделать таблицы друзей. Эта таблица будет иметь два поля: User_id и friend_id (также user_id). Ниже приведено базовое изображение дизайна.

enter image description here

+0

Могу ли я генерировать диаграммы, подобные приведенным выше, используя eclipse? –

+0

@ReCoNciLiaTiOn, я использовал dbForge Studio для SQL Server 3.0: http://www.devart.com/dbforge/sql/studio/download.html. Я не уверен, что в eclipse есть плагин для создания диаграмм. –

+0

Спасибо за это, я посмотрю. –

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