这里应该采用一对一的表关系吗?

时间:2012-06-23 12:36:18

标签: database database-design database-schema one-to-one

我有两列用于两个用户之间的简单请求/操作流程:

request_type
request_to
request_by
request_msg
request_time

action_type
action_by
action_msg
action_time

来自When we need to use 1-to-1 relationship in database design?的最高回复表明我的示例不符合此处接受分区的任何原因。但是,我仍然发现自己想知道这两组列是否属于同一个表,因为:

  • 该过程基本上是两行插入,但后者必须使用更新来应用,因为该表包含两组列
  • 无法更新每个集合,因此有两个表可能会拒绝更新权限
  • 当操作处于待处理状态时,表的一半是空字段
  • 虽然直接相关,但他们仍然觉得两个语义上不同的用户操作

感谢您的任何想法。

1 个答案:

答案 0 :(得分:0)

您可以有两个表,一个用于请求,另一个用于操作。

request
=======
request_id (primary key identity(1,1))
request_type (fk to type table)
request_to (fk to user table)
request_by (fk to user table)
request_msg 
request_time (default getdate())

action
======
action_id (primary key identity(1,1))
request_id (fk to request table)
action_type (fk to type table)
action_by (fk to user table)
action_msg 
action_time (default getdate())