十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
设计一张浏览文章表,字段用自增id、文章id、用户id、浏览时间、ip、客户端信息。。。
东安网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联建站成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
用户每访问一次文章就向表中添加一条数据
查询某文章浏览量就是select count(*) from 浏览表 where 文章id=:id
查询某文章用户总量 select count(*) from 浏览表 where 文章id=:id group by 用户id
嗯。最简单的方法就是在你记事本的那个表里面加一个classid的字段,int格式的。
里面存放你的分类ID,例如:你想存放 我的事 公司的事 其他的事 那么你可以
分别用 1 2 3 来 对应他们 并在 录入 的时候存入数据表。
后台修改 可以 加上 下拉菜单 值分别是 123 描述分别是 我的事 公司的事 其他的事
前台调用的时候 可以 用 “select * from 记事本 where classid=1 ” 来取出 “我的事”
其他的一次类推。有不明白的可以继续问我哦。 可以在我的论坛询问。
数据库建两个表,一个是分类的,另一个是放文章的,文章表里面有个字段关联分类表
几乎在所有web项目中,都涉及文章分类和标签的设计,应该说这是一个比较常见、典型的案例。站长并不保证我的思路就是最好的,只是分享出来大家一起交流一下,互相促进与提高。我们假设的开发项目是一个博客系统,最核心的部分就是与文章相关的,那么我们今天讨论如何设计博客系统的文章分类和标签。1、首先,分类和标签都是要和具体的文章相关联的,当然也可能一些文章既没有分类也没有标签,这一点是大家在写查询的时候容易疏忽的地方。因为我们的第一感觉就是,在查询文章列表的时候关联分类表,查出所有的文章和分类,对应关系一般是文章表的分类id对应分类表的id,使用where子句进行限定。这里就存在一个问题了,由于使用了where子句,那么只能查询有分类的文章,而没有分类的文章就查询不到了。这时候怎么办?应该使用连接查询,left join,这要没有分类的文章,在文章分类id那一栏会显示null。通常我们只使用left join,而很少使用right join。2、一般,一篇文章最好只对应一个分类,当然如果你想要对应多个分类也可以。但站长并不提倡,文章在多个分类中重复会给人很不专业的感觉,即使有些文章可能确实设计到多方面的内容,那么你应就其中的侧重点来分类。而标签就不一样了,一篇文章可能有多个标签。这就意味着我们无法靠一个sql语句既查出所有文章的分类和标签,又做到查询结果中的文章id不重复。通常我们需要把查询出来的结果直接循环出来,那么这个结果一般是二维数组,第二维的都存储了唯一一篇文章的相关信息。但是,标签和文章是多对一的关系,多个标签对应一篇文章,如果你只用一条sql语句的话,那么我们查询出来的结果,当然也是多行,这不符合我们目标数据的要求。应此,需要在查询完文章和分类之后,在前面结果的基础上再查询一次文章标签,把两次的结果结合起来,存在数组中,这是对应文章列表页面的查询方法。对于具体文章页面,可以分两次查询。好了,还没有给出具体的数据库设计,就先说了如何查询结果,相信大家也看烦了,下面就举例说明:一、文章表:post,字段如下:id【唯一标识】,aid【作者id】,title【标题】,content【内容】,cid【分类id】二、分类表,category,字段如下:id【唯一标识,与post表的cid关联】,name【分类名】三、标签表,tag,字段如下:id【唯一标识】,name【标签名】四、标签与文章对应关系表,tag_relationship,字段如下: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标签的文章有多少篇,只需要select count(name) �0�2from tag where name=’php’,就可以查出来。不好的地方是,如果要查询所有标签的集合,使用这种设计需要使用group by name语句来去除重复的行。如果用之前的那种,只需要select * from tag就可以了。一时之间,好像不太好取舍。这两种设计都会有数据冢余,第一种tag_relationship表中,存在tagid字段的重复;而这两种设计又都有各自的好处。那么我们到底该怎么选择呢?站长也说不好,所以无法为大家下结论。但是站长在研究wordpress数据结构的时候,发现wp是采用的单独建表存储文章与标签对应关系的方式。另外,如何设计有时候也是取决具体功能的需求的,所以这个问题就留给大家一起来讨论吧~ 标签:分类和标签, 博客数据库设计