We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
比如我们有个表(UserLiked)记录用户喜欢的 workspace 内容,且一个用户可以喜欢多个 workspace
前端的 UI 展现是用户点击 like 界面显示出用户全部喜欢的 workspace
现在有下面两种表结构,你觉着哪种不错?
注意,MYSQL并不支持Array类型,这里只是比较表设计。
Mongodb支持Array,文档数据库表结构灵活,不要滥用Array,不要过早优化
A 表
又或者 B 表
A 表可以保证只存在唯一一个 UserId,这时 UserID 可以作为主键
B 表 UserID 可以存在多个,UserID, workspaceID 共同作为主键
为了拿到更细度的 workspace 数据两个数据表都需要 Join 联查
https://stackoverflow.com/questions/17371639/how-to-store-arrays-in-mysql
https://stackoverflow.com/a/17371788/7529562 上文 A 表结构要通过数组实现,但 MYSQL 并不支持数组,为什么不支持?
设想我们还有一张记录用户全部的手机号 UserPhones 表。按照 UserLiked 的设计我们会在 User 表中添加 Phones 数组,现在表成了这样
那如果今后还有相似的需求呢?难道总是通过加数组解决吗?
最好的解决办法是像 B 表,将两张表分裂成三张表
User 表只存储用户信息, Phone 表只存储手机号码信息,如果两表有关联应使用新的表记录两者的关联,并通过 JOIN 多表联查,这就是关系数据库。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
比如我们有个表(UserLiked)记录用户喜欢的 workspace 内容,且一个用户可以喜欢多个 workspace
前端的 UI 展现是用户点击 like 界面显示出用户全部喜欢的 workspace
现在有下面两种表结构,你觉着哪种不错?
注意,MYSQL并不支持Array类型,这里只是比较表设计。
Mongodb支持Array,文档数据库表结构灵活,不要滥用Array,不要过早优化
A 表
又或者 B 表
A 表可以保证只存在唯一一个 UserId,这时 UserID 可以作为主键
B 表 UserID 可以存在多个,UserID, workspaceID 共同作为主键
为了拿到更细度的 workspace 数据两个数据表都需要 Join 联查
你真的需要存储数组吗?
https://stackoverflow.com/questions/17371639/how-to-store-arrays-in-mysql
https://stackoverflow.com/a/17371788/7529562
上文 A 表结构要通过数组实现,但 MYSQL 并不支持数组,为什么不支持?
设想我们还有一张记录用户全部的手机号 UserPhones 表。按照 UserLiked 的设计我们会在 User 表中添加 Phones 数组,现在表成了这样
那如果今后还有相似的需求呢?难道总是通过加数组解决吗?
最好的解决办法是像 B 表,将两张表分裂成三张表
User 表只存储用户信息, Phone 表只存储手机号码信息,如果两表有关联应使用新的表记录两者的关联,并通过 JOIN 多表联查,这就是关系数据库。
The text was updated successfully, but these errors were encountered: