需要社交网络应用程序的数据库设计建议
Database Design Advice for a Social Network App Needed
我对数据库等后端内容还很陌生。话虽如此,我缺乏数据库设计知识。
我想知道如何以及什么是适合我的场景的最佳设计。
我正在创建一个社交网络应用程序,用户可以在其中创建群组并加入其他群组。这些组中有个地方。 那些地方是由群组用户
创建的
- User
- Group
- Place
规则:
- One User can create and join many Groups
- One Group can contain many Users
- One Group can have many Places
- Each Group have an admin User
我目前有 3 个独立的 tables
1.用户 TABLE
ID, EMAIL, USERNAME, PASSWORD, PROFILE PICTURE
2。组 TABLE
ID, NAME
3。地点 TABLE
ID, NAME, COORDINATE, RADIUS
我在为它设计合适的数据库时非常困惑。
问题:
- table.
的关系应该怎么设计
- 我想在具有权限 做一些普通用户无法做的事情 。如新建地点,删除地点
- 我应该如何定义我的 table 结构?
有什么想法吗?非常感谢任何帮助!!
谢谢
您还需要一个 table 才能在用户和组之间创建所谓的多对多关系。
由于您没有指定您正在使用的 rdbms,我将为我的代码使用 SQL 服务器:
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。如果您只希望每个团队有一个管理员用户,您可以添加一个检查约束以防止有超过一个管理员每组.
我对数据库等后端内容还很陌生。话虽如此,我缺乏数据库设计知识。
我想知道如何以及什么是适合我的场景的最佳设计。
我正在创建一个社交网络应用程序,用户可以在其中创建群组并加入其他群组。这些组中有个地方。 那些地方是由群组用户
创建的
- User
- Group
- Place
规则:
- One User can create and join many Groups
- One Group can contain many Users
- One Group can have many Places
- Each Group have an admin User
我目前有 3 个独立的 tables
1.用户 TABLE
ID, EMAIL, USERNAME, PASSWORD, PROFILE PICTURE
2。组 TABLE
ID, NAME
3。地点 TABLE
ID, NAME, COORDINATE, RADIUS
我在为它设计合适的数据库时非常困惑。
问题:
- table. 的关系应该怎么设计
- 我想在具有权限 做一些普通用户无法做的事情 。如新建地点,删除地点
- 我应该如何定义我的 table 结构?
有什么想法吗?非常感谢任何帮助!!
谢谢
您还需要一个 table 才能在用户和组之间创建所谓的多对多关系。
由于您没有指定您正在使用的 rdbms,我将为我的代码使用 SQL 服务器:
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。如果您只希望每个团队有一个管理员用户,您可以添加一个检查约束以防止有超过一个管理员每组.