我是一个完整的 SQL 初学者,我正在努力寻找一个非常简单问题的解决方案。
场景是这样的:当用户在我的网站上注册时,他们被插入到只有几列(user_id、用户名、电子邮件、密码、日期)的“用户”表中。
我不想在他们注册时再询问他们,但是我希望每个用户都有一个可选的设置页面,他们可以在其中输入其他用户信息,例如名字、姓氏、简历等。
为了保持我的数据库干净,我为此信息创建了第二个名为“user_info”的表。此表包括存在于“用户”中的“用户 ID”列。
我正在努力将这两个表联系起来。我想要它,所以每当将用户添加到“用户”表时,都会将具有相同“用户 ID”的新条目插入到“用户信息”中。这也需要用于删除用户。
到目前为止,我已经收集到需要使用 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
);
我将不胜感激有关此问题的任何建议,以及有关一般最佳实践的任何建议!
亲切的问候
亚当