需要社交网络应用程序的数据库设计建议

Database Design Advice for a Social Network App Needed

我对数据库等后端内容还很陌生。话虽如此,我缺乏数据库设计知识。

我想知道如何以及什么是适合我的场景的最佳设计。

我正在创建一个社交网络应用程序,用户可以在其中创建群组加入其他群组。这些中有个地方那些地方是由群组用户

创建的
  1. User
  2. Group
  3. Place

规则:

  1. One User can create and join many Groups
  2. One Group can contain many Users
  3. One Group can have many Places
  4. 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

我在为它设计合适的数据库时非常困惑。

问题:

  1. table.
  2. 的关系应该怎么设计
  3. 我想在具有权限 做一些普通用户无法做的事情 。如新建地点,删除地点
  4. 我应该如何定义我的 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。如果您只希望每个团队有一个管理员用户,您可以添加一个检查约束以防止有超过一个管理员每组.