如何在一行中存储多个ID?

时间:2019-03-29 13:36:33

标签: mysql phpmyadmin

我正在创建一个具有云同步功能的记事应用。云是一个MySQL服务器。有一个用户表,其中包含名称,密码和ID行,以及具有ID,便笺,标签,creator_id和shared_id的便笺数据库。用户表中的ID与creator_id相同,问题出在shared_id上。

用户应该能够与其他多个用户共享笔记。例如,用户1可以与用户2和用户3共享他的笔记,但是我不知道如何在shared_id行中存储多个ID。

_________   ______
user        note
_________   ______
id    ----- creator_id
name        shared_id   <--(array of user id's)
password    note
            labels
            id

我正在考虑创建一个具有组ID和用户ID(称为user_id)的组表,但是问题仍然存在,在user_id行中将有多个ID。

________
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,注释和标签是注释,ID是注释的ID(未连接到用户),shared_id应该是可以观看此注释的用户列表。 / p>

组表如下所示:

group           note
id   user_id    shared_id
3    1, 2       3
|               |
-----------------

组的ID和便笺的shared_id将相同,user_id将是用户表中的ID。

1 个答案:

答案 0 :(得分:1)

正如@forpas在评论中建议的那样,

最好的方法之一是创建另一个带有两个字段即shared_notes的表“ user_id and notes_id”。其中user_id是共享笔记的用户表中的id,notes_id是笔记ID。

然后,您可以存储多个记录,例如,如果用户u0与u1和u2共享笔记n0,则表将为

shared_notes
------------
user_id      notes_id
u1           n0
u2           n0