如果
visibility
列决定是否删除post我认为您只能在父表中拥有它
Products
子表中不需要它
Variations
和
Colors
. 如果
产品
另外两张桌子你可以一直用
JOIN
知道什么标记为已删除。
例如,如果您有以下查询:
SELECT * FROM `Products` p
LEFT JOIN `Variations` v ON p.product_id = v.product_id
LEFT JOIN `Colors` c ON p.product_id = c.product_id
WHERE p.visibility = 1;
您将只获取可见产品的数据,如果要从子表中删除数据,可以执行以下操作:
SELECT v.* FROM `Variations` v
LEFT JOIN `Products` p ON v.product_id = p.product_id
WHERE p.visibility = 0;
最后一个查询将从
变化
标记为已删除的。
结论
使用时,始终可以按一对多关系中的父字段确定子字段的状态
加入
语句,所以只需更新父表中的字段,我认为子表中相同的字段是多余的。