我需要關於完成以下設計模式的最佳方法的建議。MySQL - 多對多 - 對關係錶行進行加權/排序 - 關係未關聯時重建訂單
我有兩個表,多對多的關係。還有一張表格將它們連接在一起。
tableName: playlist
columns:
id
name
track
columns:
id
name
playlist_track
playlist_id { onDelete: CASCADE }
track_id { onDelete: CASCADE }
order_no
的關係映射器表的示例數據:
Entry1:
playlist_id: 1
track_id: 1
order_no: 1
Entry2:
playlist_id: 1
track_id: 2
order_no: 2
Entry3:
playlist_id: 1
track_id: 3
order_no: 3
Entry4:
playlist_id: 1
track_id: 4
order_no: 4
當Entry3被刪除時,該項目爲了PLAYLIST_ID:1。將[1,2,4],這將導致在unprettiness。
當物品被移除時,「重建」訂單的最佳方式是什麼?
心目中的替代將是兩者之間:
- PHP代碼,獲取播放列表中的所有曲目,並將其重建某種,做的[1,2,3]
- MySQL的觸發器這個任務自動地(?)
任何人有一些具體的建議?
我想觸發器是最簡單的方法,因爲訂單會經常更新。如果一首曲目被刪除,它也會級聯到playlist_track表。使用觸發器可以方便地跳過附加查詢。 – dropson 2011-01-11 21:22:51