我在mysql中的兩個表:SQL數據庫表關係?
CREATE TABLE names (name_ID INT NOT NULL AUTO_INCREMENT,
name VARCHAR(40) NOT NULL, PRIMARY KEY (name_ID));
CRETE TABLE surnames (surname_ID INT NOT NULL AUTO_INCREMENT,
name_ID INT NOT NULL FOREIGN KEY (name_ID) REFERENCES names (name_ID),
surnames VARCHAR(40) NOT NULL, PRIMARY KEY(surname_ID));
我的問題是,我需要插入的姓氏表的外鍵列什麼樣的價值觀?
例如,如果我在Names表中輸入驗證數據:
INSERT INTO names VALUES (NULL, 'Pamela');
INSERT INTO names VALUES (NULL, 'Sarah');
我應該作爲姓氏表的外鍵使用?我需要在這裏輸入兩張相關的表格。 MySQL如何在姓氏表中的外鍵中排序值?
這個例子從論壇DB:
CREATE TABLE languages (
lang_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
lang VARCHAR(60) NOT NULL,
lang_eng VARCHAR(20) NOT NULL,
PRIMARY KEY (lang_id),
UNIQUE (lang)
);
CREATE TABLE threads (
thread_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
lang_id TINYINT(3) UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
subject VARCHAR(150) NOT NULL,
PRIMARY KEY (thread_id),
INDEX (lang_id),
INDEX (user_id)
);
CREATE TABLE posts (
post_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
thread_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
message TEXT NOT NULL,
posted_on DATETIME NOT NULL,
PRIMARY KEY (post_id),
INDEX (thread_id),
INDEX (user_id)
);
CREATE TABLE users (
user_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
lang_id TINYINT UNSIGNED NOT NULL,
time_zone VARCHAR(30) NOT NULL,
username VARCHAR(30) NOT NULL,
pass CHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
PRIMARY KEY (user_id),
UNIQUE (username),
UNIQUE (email),
INDEX login (username, pass)
);
CREATE TABLE words (
word_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
lang_id TINYINT UNSIGNED NOT NULL,
title VARCHAR(80) NOT NULL,
intro TINYTEXT NOT NULL,
home VARCHAR(30) NOT NULL,
forum_home VARCHAR(40) NOT NULL,
`language` VARCHAR(40) NOT NULL,
register VARCHAR(30) NOT NULL,
login VARCHAR(30) NOT NULL,
logout VARCHAR(30) NOT NULL,
new_thread VARCHAR(40) NOT NULL,
subject VARCHAR(30) NOT NULL,
body VARCHAR(30) NOT NULL,
submit VARCHAR(30) NOT NULL,
posted_on VARCHAR(30) NOT NULL,
posted_by VARCHAR(30) NOT NULL,
replies VARCHAR(30) NOT NULL,
latest_reply VARCHAR(40) NOT NULL,
post_a_reply VARCHAR(40) NOT NULL,
PRIMARY KEY (word_id),
UNIQUE (lang_id)
);
插入外鍵是什麼我不明白?例如:
INSERT INTO `threads` (`thread_id`, `lang_id`, `user_id`, `subject`) VALUES
(1, 4, 1, 'Byttet til PHP 5.0 fra PHP 4.0 - variabler utilgjengelige'),
(2, 4, 2, 'Automatisk bildekontroll'),
(3, 3, 5, 'Lancer une Page HTML en PHP'),
(4, 3, 4, 'Ajouter des adresses a PHP List depuis un formulaire'),
(5, 9, 4, 'Ovo je dio teksta koji se ubacuje u forum'),
(7, 1, 1, 'Sample Thread');
是THREAD_ID,LANG_ID,這裏外鍵?如果不是,他們手動插入?如果是,他們手動插入?大聲笑
我不明白你想用SURNAMES完成什麼工作。請提供更好的解釋。 –
我們的答案沒有解釋你需要什麼嗎? – Marco
多數人不明白,所以我想添加更多的代碼。我知道這對每個人來說都是無聊的,所以我在開頭就嘗試了很少的代碼。現在我沒有選擇 – zack