0

2 人のユーザー間の単純な要求/アクション プロセス用に次の列があります。

request_type
request_to
request_by
request_msg
request_time

action_type
action_by
action_msg
action_time

データベース設計で 1 対 1 の関係を使用する必要がある場合は?からの上位の返信 私の例は、ここで分割するために受け入れられた理由のいずれにも当てはまらないことを示唆しています。ただし、次の理由から、これら 2 つの列のセットが同じテーブルに属すべきかどうか疑問に思っています。

  • このプロセスは基本的に 2 つの行の挿入ですが、テーブルには両方の列のセットが含まれているため、更新を使用して後者を適用する必要があります。
  • 各セットは更新できないため、2 つのテーブルは更新権限を拒否するのに適しています。
  • アクションが保留中の間、テーブルの半分は null フィールドです
  • 直接関連しているにもかかわらず、2 つの意味的に異なるユーザー アクションのように感じられる

ご意見ありがとうございます。

4

1 に答える 1

0

リクエスト用とアクション用の 2 つのテーブルを持つことができます。

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())
于 2012-06-23T13:06:49.443 に答える