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

时间:2015-06-09 04:15:51

标签: database database-design database-connection relational-database database-schema

我对像数据库这样的后端内容很新。话虽这么说,我缺乏数据库设计知识。

我想知道我的方案的最佳设计是什么和什么。

我正在创建一个社交网络应用,其中用户可以创建群组加入其他群组。那些群组在其中包含地点

  
      
  1. 用户
  2.   
  3.   
  4. 位置
  5.   

规则:

  
      
  1. 一个用户可以创建并加入多个群组
  2.   
  3. 一个群组可以包含多个用户
  4.   
  5. 一个群组可以有多个地方
  6.   
  7. 每个群组都有一个管理员用户
  8.   

我目前有3个单独的表

1。 USER TABLE

  

ID,EMAIL,USERNAME,PASSWORD,PROFILE PICTURE

2。 GROUP TABLE

  

ID,NAME

第3。 PLACE TABLE

  

ID,NAME,COORDINATE,RADIUS

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

问题:

  1. 我应该如何设计表的关系。
  2. 我想群组中拥有一个用户(可能更多) 权限来执行某些操作普通用户不能。例如创建新地点,删除地点
  3. 我应该如何定义表格结构?
  4. 有什么想法吗?非常感谢任何帮助!!

    谢谢

1 个答案:

答案 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的值。如果您只需要每个团队一个管理员用户,则可以添加检查约束以防止每个组拥有多个管理员

相关问题