一個想法是定義三個表:
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
希望