2017-10-06 69 views
1

我有一个名为“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 

如何连接这两个表,以便用户可以登录并创建任务?我知道我必须创建一个外键,但每次我这样做,我都无法登录或创建任务。一旦我删除外键,一切都会重新运行。

回答

1

与用户相关的任务如何?用户是否有任务?一项任务可以同时属于一个用户吗?

我确定两个答案都是。

如果是这样,那么您需要在您的任务表中添加一个user_id列,并将其标记为外键。这用于捕获与您的任务相关的用户。

可以通过添加此行到您的CREATE TABLE语句任务做到这一点(或ALTER TABLE):

FOREIGN KEY (user_id) REFERENCES user(user_id) 

如果您遇到登录问题,那么这将是另一个问题。也许你的登录逻辑来自不正确的SQL查询或其他编程逻辑。

+0

我添加了一个user_id行到任务表,并试图将其标记为外键,但我收到此错误:错误1452:无法添加或更新子行。 – Julian

+0

我明白了。我认为这是因为有任务记录没有用户ID。所以,我认为你需要添加user_id字段(你已经完成了),然后更新任务记录以设置user_id值,然后添加外键。或者,您可以删除任务表中的所有记录 - 但不确定这对您是否是一个好主意。 – bbrumm