Уважаемые эксперты/программисты базы данных:
У меня есть таблица mysql с информацией о пользователях, например
id user_id name etc.
1 userA
2 userB
3 userC
.. ..
.. ..
Я хочу создать такую функцию, как "следовать" другим пользователям, например, твиттер. Пользователь A может следовать за пользователем B, или пользователь может следовать за пользователем A, или оба могут следовать друг за другом. Для этого нужно создать 1 таблицу, скажем, последователей
id user_id follower_id
1 userA userB
2 userC userA
3 userA userC
4 userB userC
5 userX userA
Теперь я хочу найти, кто следит за пользователем. Я бы так хотел: Выберите * от подписчиков, где user_id = userA Это выберет userB и userC. То, что мне нужно.
Теперь я хочу найти, какие люди userA следуют (например, в таблице выше, userA соответствует userC и userX. Тогда мне нужно запустить что-то вроде Выберите * от подписчиков, где follower_id = userA.
Мой вопрос в том, что эта конструкция базы данных корректна для этой проблемы (учитывая избыточность и оптимизацию базы данных)? Или может быть лучший подход, чем это? Спасибо.