我是一個完整的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