Я создаю приложение заметок с облачной синхронизацией. Облако является сервером MySQL. Существует пользовательская таблица с именами, паролями и идентификаторами, а также база данных заметок с id, заметкой, метками, creator_id и shared_id. Идентификатор из пользовательской таблицы совпадает с идентификатором creator_id, а проблема с shared_id.
Пользователи должны иметь возможность делиться заметками с несколькими другими пользователями. Например, пользователь 1 может поделиться своей заметкой с пользователем 2 и пользователем 3, но я не могу понять, как хранить несколько идентификаторов в строке shared_id.
_________ ______
user note
_________ ______
id ----- creator_id
name shared_id <--(array of user id's)
password note
labels
id
Я думаю о создании групповой таблицы с идентификатором группы и идентификатором пользователя (называемым user_id), но проблема все еще существует, в строке user_id будет более 1 идентификатора.
________
group
________
id <--(id of the group, this would be used at the shared_id)
user_id <--(array of user id's from user table)
Заранее большое спасибо за помощь.
Пример базы данных:
user
id name password
0 "test user" 123456
1 "shared with" 123456
2 "another user"123456
note
creator_id note labels id shared_id
0 "Something I will forget" "home, shop" 0 1, 2
Creator_id - это идентификатор пользователя, который создал заметку, заметка, а метка - это заметка, id - это идентификатор заметки (не подключен к пользователям), а shared_id - это список пользователей, которые могут просматривать эту заметку.
Таблица групп будет выглядеть так:
group note
id user_id shared_id
3 1, 2 3
| |
-----------------
Идентификатор группы и примечание shared_id будут одинаковыми, идентификатор_пользователя будет идентификатором из таблицы пользователя.