我正在制作一个用户发布文章的网络应用,其他用户可以阅读这些文章。
我想在那里有一个功能,用户可以保存他们喜欢的文章,删除那些他们不想再看的文章。
我应该如何设置我的mysql表格呢?
我想要有这些标签。
TABELS: - 文章 - 用户 - 很喜欢 - 删除
我希望它有意义吗?
答案 0 :(得分:1)
你可能会建立类似的东西:
以下是生成这些表的SQL脚本:
-- tables
-- Table ArticleTypes
CREATE TABLE ArticleTypes (
ArticleTypeId int NOT NULL ,
ArticleTypeDesc varchar(255) NOT NULL ,
CONSTRAINT ArticleTypes_pk PRIMARY KEY (ArticleTypeId)
);
-- Table Articles
CREATE TABLE Articles (
ArticleId int NOT NULL ,
ArticleName varchar(255) NOT NULL ,
ArticleDescription varchar(255) NOT NULL ,
ArticleTypeId int NOT NULL ,
CONSTRAINT Articles_pk PRIMARY KEY (ArticleId)
);
-- Table BookmarkStatus
CREATE TABLE BookmarkStatus (
BookmarkStatusId int NOT NULL ,
BookmarkStatusDesc varchar(255) NOT NULL ,
CONSTRAINT BookmarkStatus_pk PRIMARY KEY (BookmarkStatusId)
);
-- Table Bookmarks
CREATE TABLE Bookmarks (
BookmarkId int NOT NULL ,
UserId int NOT NULL ,
ArticleId int NOT NULL ,
BookmarkStatusId int NOT NULL ,
CONSTRAINT Bookmarks_pk PRIMARY KEY (BookmarkId)
);
-- Table Users
CREATE TABLE Users (
UserId int NOT NULL ,
UserName varchar(255) NOT NULL ,
UserStatus int NOT NULL ,
CONSTRAINT Users_pk PRIMARY KEY (UserId)
);
-- foreign keys
-- Reference: Articles_ArticleTypes (table: Articles)
ALTER TABLE Articles
ADD CONSTRAINT Articles_ArticleTypes
FOREIGN KEY Articles_ArticleTypes (ArticleTypeId)
REFERENCES ArticleTypes (ArticleTypeId);
-- Reference: Bookmarks_Articles (table: Bookmarks)
ALTER TABLE Bookmarks
ADD CONSTRAINT Bookmarks_Articles
FOREIGN KEY Bookmarks_Articles (ArticleId)
REFERENCES Articles (ArticleId);
-- Reference: Bookmarks_BookmarkStatus (table: Bookmarks)
ALTER TABLE Bookmarks
ADD CONSTRAINT Bookmarks_BookmarkStatus
FOREIGN KEY Bookmarks_BookmarkStatus (BookmarkStatusId)
REFERENCES BookmarkStatus (BookmarkStatusId);
-- Reference: Bookmarks_Users (table: Bookmarks)
ALTER TABLE Bookmarks
ADD CONSTRAINT Bookmarks_Users
FOREIGN KEY Bookmarks_Users (UserId)
REFERENCES Users (UserId);
基本上,您可以根据Bookmarks
设计Active
表来确定文章是Deleted
还是BookMarkStatusId
(例如Active
为1 ,Deleted
)。您的书签表将处理users
和articles
表之间的关系。
希望这有帮助!