SQLite數據庫我想有一個數據庫,兩個表,就像這樣:在兩個表中,將相互替代
Parent
-------
Pk
UgliestChildPk
StrongestChildPk
Child
------
Pk
ParentPk
我使用SQLite的工作,儘管這可能不會涉及太多。 在我的模型中,Parent總是至少有一個Child,在這種情況下,最醜的和最強的將是Parent的唯一Child。 我需要能夠檢索所有父母的孩子(通過Child.ParentPk外鍵)。我還需要能夠有效地找回家長最醜陋和最強壯的孩子。 我需要能夠添加和刪除孩子,以及更改哪些是最醜的和最強的。
我收集它會拋出一個標誌,即父表和父表互相引用。有沒有更好的方式來完成這種類型的關係?
我可以添加一個IsUgliest和IsStrongest列到Child表中,但我想要有效地確保每個Parent有一個且只有一個最醜陋和最強的子(儘管它們可能是相同的)。 我也不想將索引添加到IsUgliest和IsStrongest列以便快速檢索它們。我描述的模式可以防止這種情況,因爲無論如何Pk列都是隱式索引的。
有沒有更好的方法? 有什麼建議嗎?
。我的意思是:我想替換父母X中最強壯的孩子。對其他人來說,「老」孩子是最強/最醜的孩子嗎?如果不是,您可以將其刪除並插入新的孩子。如果舊的孩子「仍然有用」(它是同一個或另一個父母最強/最醜的孩子),則只需更新父母,但不要刪除孩子。或者使用另一種方法,你可以做一個父母的更新,然後刪除所有「無用」的孩子。 –
你提出的模式很好。爲什麼你說「我收集它會拋出一個標誌,表示父母和孩子的表格都是相互引用的」? –
人們似乎對這樣的結構不滿,部分原因是因爲它試圖使用外鍵約束時會創建一個不可能的雞/蛋情況。 – hyperspasm