我有一个表a中的记录,创建后不应修改。防止通过触发器更新属性是很简单的。
问题是表A也与表B有多对多的关系。现在我要做的是防止更新表A中已创建(但尚未删除)的记录的联接表(即插入/更新/删除)。
这样做的目的是不仅要有不变的属性,还要有不变的关系。知道吗?
我不知道这是不是一个问题,但表a有一个复合主键,可能会改变。

最佳答案

假设many:many表是table A B(colA,colB),它连接表A和表B。谁在many:many(join)行上插入?你能控制它吗?按照我的理解,您希望对给定/固定行a只进行一次插入。
在表a中添加一列IsAlreadyMapped。当有人将行a映射到表B中的一组行时,请将此IsAlreadyMapped标志设置为1。请注意,B中的行集S也可以是空集。一旦IsAlreadyMapped设置为1,就不允许其他人将同一行A映射到表B中的另一组行。我认为这已经足够简单了。删除行A(物理或逻辑)时,可以根据需要更新IsAlreadyMapped。然后您也可以在表B侧添加这样的列。
我不知道你要求的所有细节,
所以我只是在这里抛出一些想法。希望有帮助。

10-06 02:17