轻松学编程十二:使用 ASP.NET 进行管理系统开发 - 数据库设计(文章分类表、文章表)
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, ',')))


在这一课中,我们学习了如何为网站管理系统设计和创建 分类表 和 文章表。通过外键建立文章表与分类表之间的关系。通过合理的数据库设计,您可以高效地管理文章内容及其分类。