![]() |
1
2
我不会在linqtosql端处理这个问题,如果您真的想删除所有子记录,我会在数据库端使用级联删除。 例如,使用Oracle,您可以在create table语句中添加“ON DELETE CASCADE”子句,请参阅 this 链接。 级联删除将处理从子表中删除所有记录的操作,所有操作都只需一次删除操作。这种方法的美妙之处在于,无论您在哪里执行操作(尽管是通过linqtosql、JAVA、ROR、PHP等),逻辑都集中在DB中,因此无论谁执行删除操作,其工作方式都是相同的。 |
![]() |
2
1
|
![]() |
3
0
表面上看,您似乎想要更改的声明性引用完整性(DRI)操作
注意,这种逻辑通常建议引用列(例如。
例如:
然而,深入观察我们会发现
此外:
另外要考虑的是,看到所有这些看起来可以为null的列(但是主键列怎么可能是可以为null的…?),您可以考虑
|
![]() |
4
0
当您希望保留对数据(用于报表或查询)的历史访问权限时,逻辑删除是有意义的,即使这些数据已过时。 你们学校以前教拉丁语,有很多教授教,还有很多学生。 解决方案:在Course表中添加一个布尔标志(Active=Y/N),并调整您的程序,以便将具有“Active=N”的课程(或教授,或任何其他内容)从必须返回“live”的查询中排除,并将其保留在历史报告中。 |
![]() |
Community wiki · SQL语法新手 1 年前 |
|
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
![]() |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
![]() |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |