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