【问题标题】:Database Design Advice for a Social Network App Needed需要社交网络应用程序的数据库设计建议
【发布时间】:2015-08-23 17:34:55
【问题描述】:

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

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

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

创建
  1. 用户
  2. 地点

规则:

  1. 一个用户可以创建和加入许多群组
  2. 一个可以包含多个用户
  3. 一个可以有很多地点
  4. 每个都有一个管理员用户

我目前有 3 个单独的表

1.用户表

ID、电子邮件、用户名、密码、个人资料图片

2。组表

身份证,姓名

3.放置表

ID、名称、坐标、半径

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

问题:

  1. 我应该如何设计表格的关系。
  2. 我希望 在一个 中有一个用户(可能更多),该用户具有 权限 可以执行某些操作 普通用户做不到。如创建新地点、删除地点
  3. 我应该如何定义我的表结构?

请问有什么想法吗?非常感谢任何帮助!

谢谢

【问题讨论】:

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


【解决方案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。如果您只希望每个团队有一个管理员用户,您可以添加一个检查约束以防止每个组有多个管理员.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 2014-10-22
    相关资源
    最近更新 更多