如何将“user”表连接到“tasks”表
问题描述:
我有一个名为“to_do_list”的数据库。我希望用户能够登录并创建任务。我在“to_do_list”两个表:如何将“user”表连接到“tasks”表
tasks:
task_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY
task VARCHAR(255) NOT NULL
importance VARCHAR(255) NOT NULL
due_date DATE NOT NULL
user:
user_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY
username VARCHAR(255) NOT NULL UNIQUE
email VARCHAR(255) NOT NULL
password VARCHAR (255) NOT NULL
active TINYINT(1) NOT NULL
如何连接这两个表,以便用户可以登录并创建任务?我知道我必须创建一个外键,但每次我这样做,我都无法登录或创建任务。一旦我删除外键,一切都会重新运行。
答
与用户相关的任务如何?用户是否有任务?一项任务可以同时属于一个用户吗?
我确定两个答案都是。
如果是这样,那么您需要在您的任务表中添加一个user_id列,并将其标记为外键。这用于捕获与您的任务相关的用户。
可以通过添加此行到您的CREATE TABLE语句任务做到这一点(或ALTER TABLE):
FOREIGN KEY (user_id) REFERENCES user(user_id)
如果您遇到登录问题,那么这将是另一个问题。也许你的登录逻辑来自不正确的SQL查询或其他编程逻辑。
我添加了一个user_id行到任务表,并试图将其标记为外键,但我收到此错误:错误1452:无法添加或更新子行。 – Julian
我明白了。我认为这是因为有任务记录没有用户ID。所以,我认为你需要添加user_id字段(你已经完成了),然后更新任务记录以设置user_id值,然后添加外键。或者,您可以删除任务表中的所有记录 - 但不确定这对您是否是一个好主意。 – bbrumm