Первые (из многих) синтаксических ошибок, которые у вас есть, в
create table users(
...
primary key (id),
foreign key (intrest_id) references intrest(id) <--- there is no table intrest
);
Я бы предложил:
Но СТОП! Не просто копировать-вставить. Попробуйте сами понять, почему MySQL выдает это сообщение об ошибке: Key column 'intrest_id' doesn't exist in table
, разве вы не получаете ошибку?
Попробуйте сначала исправить эту ошибку. Что ты должен делать? Добавьте поле intrest_id
в таблицу users
, а не просто объявите его как FOREIGN KEY
. (Это бесполезное поле в конце, но все равно делайте это).
Затем повторите запрос и попытайтесь исправить следующую ошибку. По одному. Если вы действительно застряли где-то, ну, вы знаете сайт, чтобы задавать вопросы:)
Итак, старайтесь исправлять ошибки одну за другой, пока у вас не появится скрипт, который работает без каких-либо ошибок. Вы узнаете гораздо больше, чем просто копируете и вставляете любой ответ.
CREATE TABLE Users(
id INT,
Fname char(15),
Lname char(15),
email char(50), <-- 20 is too small for emails
street char(15),
state char(2),
zip INT,
age INT,
gender char (2),
phone char(20), <-- phone should be char, not INT
user_password char(15),
PRIMARY KEY (id)
); <-- You don't really need a foreign key to Interests,
<-- that's why you have the User_interest "middle" table
CREATE TABLE Interests(
id INT,
description char(30),
PRIMARY KEY (id)
); <-- You don't really need a foreign key to Users,
<-- for the same reasons.
CREATE TABLE User_interest(
user_id INT, <-- These foreign keys are
interest_id INT, <-- good, but you need to
<-- declare them as fields, too
PRIMARY KEY (user_id, interest_id), <-- It's good if all tables have PK
FOREIGN KEY (user_id) REFERENCES Users(id),
FOREIGN KEY (interest_id) REFERENCES Interests(id)
);
CREATE TABLE Friendships(
user_1_id INT,
user_2_id INT,
description char(20),
PRIMARY KEY (user_1_id, user_2_id),
FOREIGN KEY (user_1_id) REFERENCES Users(id),
FOREIGN KEY (user_2_id) REFERENCES Users(id)
);