2012-05-23 154 views
1

我有一個表,需要堅持一些用戶操作的順序。我可以通過使用一個自我參照表來保存它,這個參照表就像一個鏈表,或者根本不使用自引用,而只是使用時間戳來保持序列。 此表參考了其他表格,如與操作相關的用戶和文件。 這些操作需要支持CRUD。操作頻率按以下順序:檢索>插入>更新>刪除數據庫設計鏈接列表與訂單通過

您的設計偏好是什麼?爲什麼? 謝謝!

+2

「最常見的操作是Retrieve> Insert> Update> Delete」... ummmm ... –

+0

@Andrew:解答:-)。 – Icerman

+0

有人能解釋這個神祕的評論嗎?那種排序中有什麼是不可能的? –

回答

2

我會避免像瘟疫那樣的「鏈接列表」。關於他們唯一的好處是檢索「下一個」項目。問題是每一個額外的「跳躍」都需要一個連接,所以如果你想參數化(例如,提供一個函數來檢索給定項目後面的N項目),那麼你需要(1)機器生成的連接(2) )多重選擇(3)不太可能被ORM移植和/或支持的SQL。

這是使SQL在臭名昭着的令人討厭的同樣的問題。它通過遞歸連接「固定」,但是這是(3)以上(也許我是老式的,有人會說現在這些支持很好 - 如果是的話,我想我會學習...)。

+0

很好地闡述。所有這三點都值得投票。喜歡聽到更多的意見,但這是一個偉大的! – Icerman

+0

我不同意你需要多個選擇或生成的SQL的論點。在語法上,這些結構現在可以很好地支持遞歸連接。也就是說,我認爲'order by'爲大多數工作負載提供了卓越的性能。 – prauchfuss

相關問題