如果我有一个名为group的表:
[Part_one_id|Part_two_id|Part_three_id|status|location]
1 7 6 ready long/lat
2 2 9 in-use long/lat
每个部分都有三个独立的零件表:
Part one Part two Part three
[id][measurement] [id][pressure] [id][temperature]
我应该以哪种方式跟踪位置和状态?
答案 0 :(得分:1)
我看到你的桌面结构有一些重大问题。
至于问题本身的答案。我并不特别喜欢MySQL触发器,因为语法不是那么好,而且它们没有像PostgreSQL或Oracle等其他数据库那样多。话虽这么说,在这个例子中关于触发器的吸引人的事情是触发器将在与触发它的更新/插入相同的事务中执行,因此您将免费获得该业务规则。但是,根据您用于访问数据库的内容,您可以启动事务,而不是在完成审计插入之后结束事务。
最终你的表格会改变为:
group:id,name,created,modified,status
part_group:part_id,group_id,created,modified
location:id,lat,long
group_location:group_id,location_id,created,modified
然后,最近创建的group_location将指向您给定组的当前位置。