我对像数据库这样的后端内容很新。话虽这么说,我缺乏数据库设计知识。
我想知道我的方案的最佳设计是什么和什么。
我正在创建一个社交网络应用,其中用户可以创建群组和加入其他群组。那些群组在其中包含地点。
- 用户
- 的组
- 的位置
醇>
规则:
- 一个用户可以创建并加入多个群组
- 一个群组可以包含多个用户
- 一个群组可以有多个地方
- 每个群组都有一个管理员用户
醇>
我目前有3个单独的表
1。 USER TABLE
ID,EMAIL,USERNAME,PASSWORD,PROFILE PICTURE
2。 GROUP TABLE
ID,NAME
第3。 PLACE TABLE
ID,NAME,COORDINATE,RADIUS
我在为它设计合适的数据库时非常困惑。
问题:
有什么想法吗?非常感谢任何帮助!!
谢谢
答案 0 :(得分:1)
您需要再增加一个表格才能创建用户和群组之间的多对多关系。
由于您没有指定正在使用的rdbms,我将使用SQL Server作为我的代码:
CREATE TABLE TblUserToGroup
(
UserToGroup_UserId int FOREIGN KEY REFERENCES TblUser(UserId),
UserToGroup_GroupId int FOREIGN KEY REFERENCES TblGroup(GroupId),
UserToGroup_IsAdmin bit DEFAULT 0
CONSTRAINT UC_UserToGroup UNIQUE(UserToGroup_UserId, UserToGroup_GroupId)
)
正如您所看到的,还有一个IsAdmin列可以取0或1的值。如果您只需要每个团队一个管理员用户,则可以添加检查约束以防止每个组拥有多个管理员