Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
Mysql 具有ID和关系的多对多表_Mysql_Database - Fatal编程技术网

Mysql 具有ID和关系的多对多表

Mysql 具有ID和关系的多对多表,mysql,database,Mysql,Database,我正试图建立一个数据库,其中有一个管理员 可以创建包含任务的列表,现在棘手的是,所有用户都可以将任务设置为已完成,但只能为自己设置 这是我目前的计划 这是一种正确的处理方法吗?您实际上不需要completed标志,因为如果任务没有完成,添加行就没有意义了 create table user_list_tasks_completion ( user_id int references users(user_id), list_task_id int references list_tas

我正试图建立一个数据库,其中有一个管理员

可以创建包含任务的列表,现在棘手的是,所有用户都可以将任务设置为已完成,但只能为自己设置

这是我目前的计划


这是一种正确的处理方法吗?

您实际上不需要
completed
标志,因为如果任务没有完成,添加行就没有意义了

create table user_list_tasks_completion (
  user_id int references users(user_id),
  list_task_id int references list_tasks(id),
  primary key (user_id, list_task_id)
);

“所有用户都可以将任务设置为已完成,但只能为自己。”这是应用程序逻辑的一部分,数据库不需要这样做,对吗?或者您的问题是将此逻辑合并到数据库层?谢谢您的回答。我的意思是,对于用户id和任务id,完成的字段应该是唯一的……只要您对
用户id
任务id
表中的
用户id
唯一的
约束,那么您就很好。所以在多对多表中有一个ID字段并将其与user\u tasks表关联可以吗?以前从未这样做过,但我看不出有其他方法。谢谢