Сейчас я работаю в какой-то социальной сети, и мне интересно, как я могу хранить пользовательские соединения в базе данных.
Структура, о которой я думал, выглядит примерно так, и она мне очень подходит. Я предполагаю, что это противоречит третьему правилу нормализации БД, но я не вижу лучшего способа хранения соединений, так как будет большое количество пользователей (надеюсь;)), и не имеет смысла создавать новые колонка для каждого нового соединения.
table-name: tbl_usersuser_id username connected_users
---------------- ---------------- --------------------
1 Freak 2,4
2 Banana 1,3,5
3 MacKing 1,2,4,5
4 Nightmare
5 Dreamer 2,3
... ... ...
То, что я ищу, это:
— способ добавить и / или удалить отдельные значения из столбца «connected_users» (например, когда пользователь находится в профиле другого пользователя и нажимает кнопку «соединиться с» или «удалить соединение»)
и найти связи, например, когда пользователь пишет сообщение (кнопка «new-post»), чтобы найти все текущие подключения авторов и сохранить их в моей другой таблице: «tbl_blogposts» (кажется странным, но я хочу, чтобы эти текущие подключения были сохранены в пост и никогда не будет изменен снова, независимо от того, с кем автор связан, позже):
table-name: tbl_blogpostspost_id author connected_users
---------------- ---------------- --------------------
1 1 2,4
2 3 1,2,4,5
3 3 1,2,4,5
4 5 2,3
5 2 1,3,5
... ... ...
или же
— лучший способ хранить все эти соединения
Задача ещё не решена.
Других решений пока нет …