2010-09-20 25 views
0

舉個例子:假設有兩個表格:Person和Photo。每張照片都有一個PersonId列,用於指示這是誰的照片,並且每個人可以擁有多張照片。每個人都選擇了一張自己的照片。如何在列表中執行正確的子集選擇?

在這種情況下,CurrentlySelectedPhoto如何以關係,非規格化的方式存儲,以確保SelectedPhoto不屬於另一個Person記錄?

Person Photo 
------ ----- 
1-John P1-1(Picture of Person 1, John) 
2-Jack P2-1(John) 
     P3-2(Jack... John should not be able to point to select this photo) 

如何確保 - 在模式級別 - 約翰的行無法指向照片P3作爲有效的SelectedPhoto?

一般來說,應該在哪裏存儲列表中的選擇?在主表(在這個例子中是人表)?作爲照片表中的屬性?在一個單獨的表中?

回答

1

Photo表中創建一個名爲IsSelected的表中的列,並在此表上創建一個觸發器,以確保IsSelected只能針對同一個用戶ID的一張照片爲真。

相關問題