我需要关于完成以下设计模式的最佳方法的建议。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