我正在尝试创建一些表,但我无法让我的密钥正常工作。
class M{public static void main(String[]a){System.out.print(new char[]{'H','e','l','l','o',' ','W','o','r','l','d','!'});}}
我只想在这两个表之间建立简单的关系。
答案 0 :(得分:1)
您问题的直接答案是外键需要引用所有列的唯一键。这也需要两列上的唯一索引,因此它应该如下所示:
Create table FAQ (
id int(10) PRIMARY KEY AUTO_INCREMENT,
question text,
answer text
);
Create table templates (
id int(10) AUTO_INCREMENT,
name varchar(80),
value varchar(30),
sql_db text,
sql_table text,
Primary Key(id),
Unique (name, value)
);
Create table clientes (
id int(10) AUTO_INCREMENT,
nome varchar(80),
email varchar(30),
website varchar(80),
template_name varchar(80),
template_value varchar(30),
modo varchar(10),
data datetime,
Primary Key (id),
FOREIGN KEY (template_name, template_value) REFERENCES templates(name, value)
);
但是,最好使用主键(自动增加的id)。然后使用join
:
Create table clientes (
id int(10) AUTO_INCREMENT,
nome varchar(80),
email varchar(30),
website varchar(80),
template_id int,
modo varchar(10),
data datetime,
Primary Key (id),
FOREIGN KEY (template_id) REFERENCES templates(id)
);