我是一个完整的SQL初学者,我正在努力寻找一个非常简单的问题的解决方案。自动在另一个表中创建(并删除条目)
情景是这样的:当用户在我的网站上注册时,它们被插入只有少数列(user_id,用户名,电子邮件,密码,日期)的'用户'表中。
我不想在注册时询问了他们的,但是我想,每个用户都有一个可选的设置页面,在这里他们可以输入额外的用户信息,如用的名字,姓氏,生物等
为了保持我的数据库清洁,我为此信息创建了第二个名为'user_info'的表。此表格包含'用户'中存在的'user_id'列。
我正在努力的是链接这两个表。我需要它,所以无论何时将用户添加到“用户”表中,都会使用相同的“user_id”将新条目插入到'user_info'中。这也需要用于删除用户。
到目前为止,我收集到使用FOREIGN KEY是必需的,并试图使用CASCADE来解决这个问题。
我的表是这样的:
CREATE TABLE users (
user_id INT AUTO_INCREMENT NOT NULL,
username VARCHAR(20) NOT NULL default '',
email VARCHAR(100) NOT NULL default '',
password VARCHAR(100) NOT NULL default '',
create_date DATETIME NOT NULL default '0000-00-00',
PRIMARY KEY (user_id),
UNIQUE KEY (username),
UNIQUE KEY (email)
);
CREATE TABLE user_info (
user_id INT NOT NULL,
forename VARCHAR(30) NOT NULL default '',
surname VARCHAR(30) NOT NULL default '',
dob DATE NOT NULL default '0000-00-00',
location VARCHAR(30) NOT NULL default '',
PRIMARY KEY (user_id),
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
);
我会在这个问题上欣赏任何意见,任何建议沿着一般的最佳实践!
亲切的问候
亚当
外键+级联需要InnoDB引擎,它们不能与MyISAM一起使用。 – biziclop