Хорошо, так что я новичок здесь на 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
)
Итак, что я теряю, каковы различия между ключом, индексом, ограничением и внешним ключом?
Я смотрю онлайн и не могу найти для него новое объяснение.
пс. Я использую phpactiverecord и устанавливаю отношения в моделях
user- > has_many ('projects'); projects → принадлежит_to ('пользователь');
не уверен, что это имеет к этому какое-то отношение, но подумал, что я брошу его там.
Спасибо.
EDIT:
Я думал, что это может быть чем-то связано с navicat, поэтому я пошел в mamps phpmyadmin и запустил это...
ТАБЛИЦА DROP TABLE IF EXISTS,
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;
Все еще ничего...: (