【问题标题】:Database Design: One to many of different types数据库设计:一对多不同类型
【发布时间】:2012-03-28 03:35:09
【问题描述】:

某事的工作流程如下

1) 为特定用户组创建“每日消息”(必须在激活前获得批准)

2) 通过选择单个用户和/或作为此 MOTD 将要进入的组的管理员的用户,或任何其他数量的用户分组来分配谁可以批准此操作。

3) “每日消息”不得由选定的“批准者”之一批准。

如何将 MOTD 记录与“单个用户”和/或“用户组”中的一个或多个相关联

【问题讨论】:

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


【解决方案1】:

一种方法是将类型字段添加到映射表。这适用于多对多的不同类型。

create table motd_approvers (
  id int auto_increment primary key,
  motd_id int not null,
  user_id int not null,
  user_type enum('admin','user') not null
);

我不认为它实际上是一对多。您有许多 MOTD 条目和许多可以成为许多 MOTD 条目的审批者的用户。

【讨论】:

  • webjprgm,我们无法使用枚举,因为这是 MsSql 并且 MsSql 服务器没有枚举(如果我错了,请纠正我)。
  • 正确。您可以改为使用 tinyint(1) 作为标志,或使用 int 作为类型 id,或使用 varchar 以提高可读性。相同的概念。
猜你喜欢
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
相关资源
最近更新 更多