TLa*_*ama 4 mysql sql-server delete constraint mysql-5.5
我想问一下如何处理这种关系。为了更好地查看,我试图简化并将我的情况转换为我认为 StackOverflow 问题投票的方式(对不起,如果不是:-)

我想添加一个带有CASCADE DELETE规则的约束,但是我不知道这种情况是否可行。另一种选择是创建一个ON DELETE触发器,所以...
我的问题是:
你更喜欢CASCADE DELETE约束规则(如果可能的话)还是ON DELETE触发器?
或者你会为这个简单的案例(想象一下 StackOverflow 的投票方案)以不同的方式创建一个数据库模型吗?
我为什么要问:
我在某处读到CASCADE DELETE约束规则在内部只是触发器,而这里的一些人根本不喜欢约束规则。我知道,很模糊的问题,但我想让我的数据库从不存在的关系记录中清除。
重要的是:
我正在创建的应用程序应该能够在 SQL Server 以及 MySQL 数据库引擎上运行,但我猜这两者都应该支持所有CASCADE DELETE约束规则和ON DELETE触发器。
谢谢!
我认为您不会看到触发器和使用级联之间的性能差异。我宁愿ON CASCADE DELETE只是因为在我看来它更好地描述了模型并揭示了创作者的意图。此外,如果您以后使用一个或另一个 ORM,如果它是通过foreign key约束而不是通过触发器实现的,它将能够在实体之间建立关系(当然,我说的是“数据优先”方法)。