一个想法是定义三个表:
CaseTbl Person CasePersonHistory
------------ -------------- ------------------
case_id (PK) person_id (PK) case_id (PK)
case_name etc etc... person_id (PK)
case_descr seq_num (PK)
etc etc... etc etc...
编辑:不能使用case
的表名......而是选择其他
的CaseTbl
总是有一个ID ...这是独特的描述。 Person
也是如此。 CasePersonHistory
提供案件和序号之间的多对多关系,其中最高的seq_num
将是目前拥有该案件的人,而所有较低的seq_num
是先前拥有案件的人。
因此,举例来说,如果
fred's person_id = 54
mikes's person_id = 55
jane's person_id = 56
如果case_id
为1
,弗雷德原本就有的情况下,然后把它交给迈克,谁然后把它交给简则CasePersonHistory
会是什么样......
现在
CasePersonHistory
------------------
case_id person_id seq_num
-----------------------------------
1 54 1
1 55 2
1 56 3
你可以找出谁是当前所有者或情况的业主们通过基于该CASE_ID选择表中,并找到序列号的最大:
SELECT MAX(seq_num) FROM CasePersonHistory WHERE case_id = 1;
或让谁目前拥有的情况下帮助:)
的人...
SELECT person_id FROM CasePersonHistory WHERE case_id = 1 order by seq_no DESC LIMIT 1
希望