【发布时间】:2010-06-26 05:01:10
【问题描述】:
为项目设置权限的标准关系数据库惯用语是什么?
答案应该是一般的;但是,它们应该能够应用于下面的示例。任何事情都会发生:添加列、添加另一个表——只要它运行良好即可。
应用/示例
假设 Twitter 数据库非常简单:我们有一个 User 表,其中包含登录名和用户 ID;我们有一个Tweet 表,其中包含推文ID、推文文本和创建者ID;我们有一个Follower 表,其中包含被关注的人和关注者的ID。
现在,假设 Twitter 想要启用高级隐私设置(查看权限),以便用户可以准确选择哪些关注者可以查看推文。设置可以是:
- Twitter 上的每个人
- 只有当前的追随者(这当然必须得到用户的批准,但这并不重要)编辑: 像当前一样,我有一个新的追随者,他看到了;我删除了一个关注者,他不再看到它。
- 特定关注者(例如,用户 ID 5、10、234 和 1)
- 只有所有者
在这种情况下,表示查看权限的最佳方式是什么?优先级依次是查找速度(您希望能够快速确定要向用户显示哪些推文)、创建速度(您不需要不想花很长时间发布推文),以及有效利用空间(每次我向关注者列表中的每个人发布推文时,我都不应该为每个人添加一行,并且每个追随者我都有一张桌子。)
【问题讨论】:
-
“答案应该是一般性的;但是,他们应该……”听起来像是从教授的问题中逐字提取的。也许您可以先尝试自己做功课,然后在遇到麻烦时向我们提出具体问题。这不是 RentACoder。
-
很抱歉,这不是家庭作业——我正在尝试开发一个 Web 应用程序,但对整个 SQL 事物还是很陌生;这个问题困扰我很久了。如果它听起来像一本教科书,我很抱歉——我不是故意那么无聊。 :)
标签: database database-design relational-database