好的,所以我是 SQL 的新手。
我正在设置我的表,我对索引、键、外键感到困惑..
我有一个用户表和一个项目表。
我想使用用户(id)将项目附加到用户。
这是我到目前为止所拥有的:
DROP TABLE IF EXISTS projects;
CREATE TABLE projects (
id int(8) unsigned NOT NULL,
user_id int(8),
name varchar(120) NOT NULL,
description varchar(300),
created_at date,
updated_at date,
PRIMARY KEY (id),
KEY users_id (user_id)
) ENGINE=InnoDB;
ALTER TABLE projects (
ADD CONSTRAINT user_projects,
FOREIGN KEY (user_id) REFERENCES users(id),
ON DELETE CASCADE
)
那么我迷失的是key、index、constraint和foreign key之间的区别是什么?
我一直在网上寻找,找不到新手的解释。
PS。我正在使用 phpactiverecord 并在模型中设置了关系
用户-> has_many('projects');
项目-> belongs_to('user');
不知道这是否与它有关,但我想我会把它扔在那里..
谢谢。
编辑:
我认为这可能与 Navicat 有关,所以我进入 WampServer -> phpMyAdmin 并运行了这个......
DROP TABLE IF EXISTS projects;
CREATE TABLE projects (
id int(8) unsigned NOT NULL,
user_id int(8) NOT NULL,
name varchar(120) NOT NULL,
description varchar(300),
created_at date,
updated_at date,
PRIMARY KEY (id),
KEY users_id (user_id),
FOREIGN KEY (user_id) REFERENCES users(id)
) ENGINE=InnoDB;
依然没有... :(