2024-10-23大家好,欢迎来到轻松学编程的第十二课!今天我们将学习如何设计和创建管理系统中的文章分类表和文章表。这两张表是任何内容管理系统的基础,能够帮助我们存储和管理文章内容及其分类。
1. 为什么需要文章分类表和文章表?
在网站管理系统中,文章内容的管理非常重要,而分类结构则是组织和管理文章的基础。通过定义文章分类表和文章表,您可以轻松管理不同类型的文章内容(如新闻、博客等),并将文章归类显示。2. 文章分类表ArticleCategory的设计
文章分类表 ArticleCategory 用于存储所有文章分类信息。
CREATE TABLE Articles(
NavID INT NOT NULL IDENTITY(1,1) ,
CreateUserID INT DEFAULT 0 ,
CreateDate DateTime DEFAULT getdate() ,
UpdateDate DateTime ,
UpdateUserID INT DEFAULT 0 ,
Del INT DEFAULT 0 ,
BigID INT DEFAULT 0 ,
ArticleTitle nvarchar(200) ,
Articlekey nvarchar(200) ,
ArticleDesn nvarchar(2000) ,
Statues INT DEFAULT 0 ,
Sorts INT DEFAULT 0 ,
NavSites nvarchar(2000) ,
ReleaseTime DateTime ,
Hits INT DEFAULT 0 ,
Image nvarchar(200) ,
Images nvarchar(2000) ,
Desn NTEXT ,
CONSTRAINT PK_Articles PRIMARY KEY CLUSTERED (NavID ASC ) ON [PRIMARY]
) ;;
EXECUTE sp_addextendedproperty N'MS_Description', '文章', N'user', N'dbo', N'table', N'Articles', NULL, NULL;;
EXECUTE sp_addextendedproperty N'MS_Description', '文章ID', N'user', N'dbo', N'table', N'Articles', N'column', N'NavID';;
EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'Articles', N'column', N'CreateUserID';;
EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'Articles', N'column', N'CreateDate';;
EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'Articles', N'column', N'UpdateDate';;
EXECUTE sp_addextendedproperty N'MS_Description', '更新人ID', N'user', N'dbo', N'table', N'Articles', N'column', N'UpdateUserID';;
EXECUTE sp_addextendedproperty N'MS_Description', '删除0未删除1删除', N'user', N'dbo', N'table', N'Articles', N'column', N'Del';;
EXECUTE sp_addextendedproperty N'MS_Description', '分类', N'user', N'dbo', N'table', N'Articles', N'column', N'BigID';;
EXECUTE sp_addextendedproperty N'MS_Description', '标题', N'user', N'dbo', N'table', N'Articles', N'column', N'ArticleTitle';;
EXECUTE sp_addextendedproperty N'MS_Description', '关键字', N'user', N'dbo', N'table', N'Articles', N'column', N'Articlekey';;
EXECUTE sp_addextendedproperty N'MS_Description', '描述', N'user', N'dbo', N'table', N'Articles', N'column', N'ArticleDesn';;
EXECUTE sp_addextendedproperty N'MS_Description', '显示0是1否', N'user', N'dbo', N'table', N'Articles', N'column', N'Statues';;
EXECUTE sp_addextendedproperty N'MS_Description', '排序', N'user', N'dbo', N'table', N'Articles', N'column', N'Sorts';;
EXECUTE sp_addextendedproperty N'MS_Description', '跳转地址', N'user', N'dbo', N'table', N'Articles', N'column', N'NavSites';;
EXECUTE sp_addextendedproperty N'MS_Description', '发布时间', N'user', N'dbo', N'table', N'Articles', N'column', N'ReleaseTime';;
EXECUTE sp_addextendedproperty N'MS_Description', '点击率', N'user', N'dbo', N'table', N'Articles', N'column', N'Hits';;
EXECUTE sp_addextendedproperty N'MS_Description', '头图', N'user', N'dbo', N'table', N'Articles', N'column', N'Image';;
EXECUTE sp_addextendedproperty N'MS_Description', '图片集合', N'user', N'dbo', N'table', N'Articles', N'column', N'Images';;
EXECUTE sp_addextendedproperty N'MS_Description', '详情', N'user', N'dbo', N'table', N'Articles', N'column', N'Desn';;
3. 文章表Articles的设计文章表 Articles 用于存储文章的详细信息。
CREATE TABLE ArticleCategory(
BigID INT NOT NULL IDENTITY(1,1) ,
CreateUserID INT DEFAULT 0 ,
CreateDate DateTime DEFAULT getdate() ,
UpdateDate DateTime ,
UpdateUserID INT DEFAULT 0 ,
Del INT DEFAULT 0 ,
ParentID INT DEFAULT 0 ,
Depths INT DEFAULT 0 ,
ParentIDs nvarchar(2000) ,
ParentIDFirst INT DEFAULT 0 ,
Statues INT DEFAULT 0 ,
BigTitle nvarchar(50) ,
KeyTitle nvarchar(50) ,
KeyWord nvarchar(200) ,
KeyDesn nvarchar(2000) ,
Images nvarchar(200) ,
Sorts INT DEFAULT 0 ,
CONSTRAINT PK_ArticleCategory PRIMARY KEY CLUSTERED (BigID ASC ) ON [PRIMARY]
) ;;
EXECUTE sp_addextendedproperty N'MS_Description', '文章分类', N'user', N'dbo', N'table', N'ArticleCategory', NULL, NULL;;
EXECUTE sp_addextendedproperty N'MS_Description', '文章分类', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'BigID';;
EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'CreateUserID';;
EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'CreateDate';;
EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'UpdateDate';;
EXECUTE sp_addextendedproperty N'MS_Description', '更新人ID', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'UpdateUserID';;
EXECUTE sp_addextendedproperty N'MS_Description', '删除0未删除1删除', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'Del';;
EXECUTE sp_addextendedproperty N'MS_Description', '父级ID', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'ParentID';;
EXECUTE sp_addextendedproperty N'MS_Description', '深度默认为0顶级是1', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'Depths';;
EXECUTE sp_addextendedproperty N'MS_Description', '所有父级ID用,隔开', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'ParentIDs';;
EXECUTE sp_addextendedproperty N'MS_Description', '顶级父ID', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'ParentIDFirst';;
EXECUTE sp_addextendedproperty N'MS_Description', '导航0是1否', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'Statues';;
EXECUTE sp_addextendedproperty N'MS_Description', '分类名称', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'BigTitle';;
EXECUTE sp_addextendedproperty N'MS_Description', '优化标题', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'KeyTitle';;
EXECUTE sp_addextendedproperty N'MS_Description', '关键词', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'KeyWord';;
EXECUTE sp_addextendedproperty N'MS_Description', '描述', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'KeyDesn';;
EXECUTE sp_addextendedproperty N'MS_Description', '图片', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'Images';;
EXECUTE sp_addextendedproperty N'MS_Description', '排序大号在前', N'user', N'dbo', N'table', N'ArticleCategory', N'column', N'Sorts';;
4. 查询数据
//查询所有分类
select * from ArticleCategory
//查询所有文章
select * from Articles
//查询所有文章
select a.* from Articles as a
left join ArticleCategory as b on a.BigID=b.BigID
where (a.BigID=2 or 2 IN (select cast(value AS bigint) from string_split(b.ParentIDs, ',')))
在这一课中,我们学习了如何为网站管理系统设计和创建 分类表 和 文章表。通过外键建立文章表与分类表之间的关系。通过合理的数据库设计,您可以高效地管理文章内容及其分类。