Почему говорят, что сложно построить таблицу для друзей?
Просто составить таблицу, в которой будет три столбца - id, friend_id_1, friend_id_2. И исключить по одной строке из пар, где значения второго и третьего полей равны. Для 250 000 пользователей, даже если они будут все друг с другом дружить, то получиться около 250 000 000 000 байт, 250 Гб. (три столбца который хранят от 1 до 250000 это где-то по 2,5 байта для одного столбца. 8*250000*250000/2 = 4* 625 * 100 000 000 = 250 000 000 000).
Получается на это хватит одного винчестера.
Сделать эту таблицу меньше наверное нельзя. Какие тогда оптимизации или нормализацию можно придумать еще.
Или сложность проектирования табли для социальной сети состоит в чем-то другом?
|