Я обнаружил два возможных решения для реализации структуры базы данных для таких социальных сетей, как Facebook.Какое оптимальное решение для РСУБД для крупных социальных сетей, таких как Facebook?
1 .: Создание таблицы «Отношения» и вставка каждой дружбы в нее. Например: пользователь A добавляет B в качестве друга (A-B), затем логика помещает (A-B) и (B-A) в таблицу «Отношения». Затем он индексирует первый атрибут.
2 .: Создание уникальной таблицы для всех пользователей, содержащих друзей. Большинство баз данных работают с почти 2 миллиардами уникальных таблиц, поэтому это не будет проблемой; однако размер базы данных будет почти в 300 раз больше (ожидая 300 друзей в среднем на одного пользователя). В этом случае запросы пользователей не будут проблемой (так же просто, как SELECT * FROM)
Любые идеи? Я где-то ошибаюсь? Спасибо всем.
О, забыл упомянуть: я искал ответы, как его реализовать, и я узнал, что они вообще не используют СУБД для реализации структуры данных. Но реализация в режиме РСУБД будет по-прежнему интересна. – nbitd
AFAIK, Facebook * do * использовать MySQL, но все же вы можете захотеть вместо этого использовать базу данных графа. Пример: http://neo4j.org/ –
Решение RDBMS является первым. Добавление дополнительных таблиц, по одному для каждого элемента данных, не относится к подходу. Названия таблиц в каждой реализации SQL, которую я видел, не были удобны для манипулирования, как если бы они были данными. –