這是一個比一對多連接更復雜的想法。我有一堆像照片,帖子,用戶等可以評論的表格。我的意見表中包含3個字段,可以幫助識別評論:一個相當複雜的自動增量
item-id
- 評論屬於
table
項目的ID - 這item-id
的第(保存爲一個整數表,但顯示如下名稱,以避免混亂)
id
- 評論的ID,相對於item-id
一種更好的理解示例:
id item-id table
1 1 photos
2 1 photos
1 1 posts
2 1 posts
1 2 posts
1 1 users
現在的問題是插入。我覺得很難確定當前的最後一個ID。鑑於上面的表格,如果用戶要對item-id
= 1的照片發表評論,那麼新評論需要有一個3的ID。唯一能想到的方式是在插入時運行子查詢,但我是不是一個子查詢的粉絲。有沒有建立在MySQL的一些機制,可以幫助我實現這一點,或任何其他簡單而強大的方式?
對每個父代使用「自然外觀」序列(如1-2-3)的優勢是什麼,而不是僅僅依賴數據庫服務器提供的序列?好的,這些會變得更大,並且它們不會像1-2-3那麼整齊,但它們快速,堅固並且保證能夠防碰撞? – fvu
當我將表名稱看作列時,我想從這樣的架構中逃離 –
此架構設計在試圖確定該ID時會遇到競爭條件,以及如果刪除了某個帖子會發生什麼情況,這些數字是否都會遞減?我的直覺是,模式設計立即需要改變以不同的方式滿足需求,例如是什麼推動了這種連續數字的需求,而不是使用時間戳來提供評論的排序? – Andrew