Я разрабатываю базу данных для веб-приложения Yii, и я не уверен, что делаю это правильно.Yii Структура базы данных
CREATE TABLE user
(
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(128) NOT NULL,
password VARCHAR(128) NOT NULL,
email VARCHAR(128) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE post
(
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(128) NOT NULL,
description TEXT NOT NULL,
media TEXT NOT NULL,
tag_id INTEGER NOT NULL,
status INTEGER NOT NULL,
create_time INTEGER,
update_time INTEGER,
user_id INTEGER NOT NULL,
CONSTRAINT FK_post_user FOREIGN KEY (user_id)
REFERENCES user (id) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE comment
(
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
content TEXT NOT NULL,
status INTEGER NOT NULL,
create_time INTEGER,
user_id INTEGER NOT NULL,
post_id INTEGER NOT NULL,
CONSTRAINT FK_comment_post FOREIGN KEY (post_id)
REFERENCES post (id) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE tag
(
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Проблемы:
1.) В таблице после я tag_id. Я думал хранить все существующие и вновь добавленные теги в таблице тегов, а затем, когда кто-то использовал уже существующий тег или сделал новый тег, чтобы добавить как tag_id, чтобы опубликовать таблицу с помощью «,». Это лучшее решение?
2.) В таблице комментариев у меня есть user_id и post_id. Как я думаю, что внешний ключ работает, в таблице комментариев должны быть установлены 2 внешних ключа? Я попробовал это, но получил ошибку.
3.) В стол для сообщений есть ряд СМИ. Я собираюсь сохранить в этом месте строки загруженное изображение ИЛИ вставить код из youtube/или любого другого источника. Можно ли использовать только одну строку для этого или я должен использовать отдельный? 1 для изображений, 1 для встраивания кода?
Заранее спасибо