怎么把一篇文章放进数据库,给个例子,我要做c#项目的,谢谢

怎么把一篇文章放进数据库,给个例子,我要做c#项目的,谢谢,第1张

你可能说的不是很清楚,那我大概罗列一下可能性吧

1,把文章的文件存入数据库,就是将文件流写入数据库,通过流的形式再读出来

2,把文章文件存到服务器文件夹下,把文件名称存入数据库

3,使用一些文本控件,将文章解析成html类似标签存入数据库,读取的时候直接用文本控件显示所有内容。

三种方式都有不同的优劣,你可以斟酌一下。

几乎在所有web项目中,都涉及文章分类和标签的设计,应该说这是一个比较常见、典型的案例

站长并不保证我的思路就是最好的,只是分享出来大家一起交流一下,互相促进与提高

我们假设的开发项目是一个博客系统,最核心的部分就是与文章相关的,那么我们今天讨论如何设计博客系统的文章分类和标签

1、首先,分类和标签都是要和具体的文章相关联的,当然也可能一些文章既没有分类也没有标签,这一点是大家在写查询的时候容易疏忽的地方

因为我们的第一感觉就是,在查询文章列表的时候关联分类表,查出所有的文章和分类,对应关系一般是文章表的分类id对应分类表的id,使用where子句进行限定

这里就存在一个问题了,由于使用了where子句,那么只能查询有分类的文章,而没有分类的文章就查询不到了

这时候怎么办?应该使用连接查询,leftjoin,这要没有分类的文章,在文章分类id那一栏会显示null

通常我们只使用leftjoin,而很少使用rightjoin

2、一般,一篇文章最好只对应一个分类,当然如果你想要对应多个分类也可以

但站长并不提倡,文章在多个分类中重复会给人很不专业的感觉,即使有些文章可能确实设计到多方面的内容,那么你应就其中的侧重点来分类

而标签就不一样了,一篇文章可能有多个标签

这就意味着我们无法靠一个sql语句既查出所有文章的分类和标签,又做到查询结果中的文章id不重复

通常我们需要把查询出来的结果直接循环出来,那么这个结果一般是二维数组,第二维的都存储了唯一一篇文章的相关信息

但是,标签和文章是多对一的关系,多个标签对应一篇文章,如果你只用一条sql语句的话,那么我们查询出来的结果,当然也是多行,这不符合我们目标数据的要求

应此,需要在查询完文章和分类之后,在前面结果的基础上再查询一次文章标签,把两次的结果结合起来,存在数组中,这是对应文章列表页面的查询方法

对于具体文章页面,可以分两次查询

好了,还没有给出具体的数据库设计,就先说了如何查询结果,相信大家也看烦了,下面就举例说明:一、文章表:post,字段如下:id唯一标识,aid作者id,title标题,content内容,cid分类id二、分类表,category,字段如下:id唯一标识,与post表的cid关联,name分类名三、标签表,tag,字段如下:id唯一标识,name标签名四、标签与文章对应关系表,tag_,字段如下:id唯一标识,postid文章id,与post表的id关联,tagid标签id,tag表的id关联有朋友可能会问:为什么要单独用一个表来存储文章与标签的对应关系,为什么不可以直接在tag表中增加一个文章id字段呢,比如:tag表:id,postid,name这样做的话,并不是不可以,但是,由于一篇文章对应多个标签,所以name字段的值会出现很多重复,比如一篇文章,假设文章id为1,有2个标签,php和mysql,那么在tag表会这样存储:id:1,postid:1,name:phpid2,postid:1,name:mysql另一篇文章,假设id为2,有2个标签,也是php和mysql,那么在tag表中它会这样存储:id:3,postid:2,name:phpid4,postid:2,name:mysql大家很快就发现了问题,这样的设计name字段也就是标签的名称在同一张表中可能会大量重复

但是这样设计的好处是,如果你要查询一个标签下有多少篇文章,只要单独查这个表就可以了,比如要查询含有php标签的文章有多少篇,只需要selectcount(name)fromtagwherename=’php’,就可以查出来

不好的地方是,如果要查询所有标签的集合,使用这种设计需要使用groupbyname语句来去除重复的行

如果用之前的那种,只需要selectfromtag就可以了

一时之间,好像不太好取舍

这两种设计都会有数据冢余,第一种tag_表中,存在tagid字段的重复;而这两种设计又都有各自的好处

那么我们到底该怎么选择呢?站长也说不好,所以无法为大家下结论

但是站长在研究wordpress数据结构的时候,发现wp是采用的单独建表存储文章与标签对应关系的方式

一般用在文件检索方面,所谓全文是与一般的数据库比较而言的。一般的数据库中存储的只是某个文件的关键字,查找时也只能按照关键字去查找,而对于全文数据库,其中包含的是整个文章的内容。因此,在查询时,一般采用的是模糊查询。这样可以更多的涉及到文章的内容。

比较权威的有Web of science(进个国外大学的图书馆,就能进到这个数据库,非常好用)

比较流行的有MedSci 期刊选择智能支持系统,可以查SCI期刊和文章,还有期刊点评

以下是图:

Web of science

MedSci 期刊选择智能支持系统

以上就是关于怎么把一篇文章放进数据库,给个例子,我要做c#项目的,谢谢全部的内容,包括:怎么把一篇文章放进数据库,给个例子,我要做c#项目的,谢谢、如何进行文章分类和标签的数据库设计、什么是全文数据库(full-text database)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9501552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存