Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 是否可以删除模型中的相关记录?这不会伤害SRP吗?_Multithreading_Single Responsibility Principle - Fatal编程技术网

Multithreading 是否可以删除模型中的相关记录?这不会伤害SRP吗?

Multithreading 是否可以删除模型中的相关记录?这不会伤害SRP吗?,multithreading,single-responsibility-principle,Multithreading,Single Responsibility Principle,有一个ForumThread和ForumPost模型类,论坛帖子属于一个线程。如果我删除了一个线程,那么他们的所有帖子都应该被删除,因此,在伪代码中: class ForumThread::delete (ID) DELETE FROM forumpost WHERE thread_id = 1; DELETE FROM thread WHERE id = 1; 但是第一个SQL不是在错误的地方吗?现在ForumThread::delete做的比它应该做的更多。但把它放在哪里,控制器?

有一个ForumThread和ForumPost模型类,论坛帖子属于一个线程。如果我删除了一个线程,那么他们的所有帖子都应该被删除,因此,在伪代码中:

class ForumThread::delete (ID)
  DELETE FROM forumpost WHERE thread_id = 1;
  DELETE FROM thread WHERE id = 1;

但是第一个SQL不是在错误的地方吗?现在ForumThread::delete做的比它应该做的更多。但把它放在哪里,控制器?在这种情况下,有机会在不删除帖子的情况下意外删除一个线程

外键不能解决这个问题吗?如果我使用MyISAM呢?:)交易性独立于单一责任。一个有趣的问题可能是,您的模型是否应该关心底层的持久性实现。外键不能解决这个问题吗?如果我使用MyISAM呢?:)交易性独立于单一责任。一个有趣的问题可能是您的模型是否应该关心底层持久性实现。