简单数据表设计求指导

小昭归来 发布于 2015/01/28 19:27
阅读 178
收藏 0

一个课程有多个标签,目标通过多个标签来查询课程,类似于网页公开课

(通过三个条件“与”,查询出下面的内容)

数据库具体是如何设计呢

1)把标签写成课程的多个属性字段(tag1,tag2,tag3)

    查询是就通过 where and直接就查询出来了


2)在课程里面写一个List标签属性,这个属性单独一张表

但是这种情况,查询语句如何写呢?

问了几个都不晓得写这个sql,有人推荐用tag_id in(?,?,?),但是这种情况是条件“或”不是“与”。

求指导啊

加载中
0
大飛
大飛

SELECT DISTINCT a.* FROM   `article` a
       INNER JOIN article_tag at
         ON at.articleid = a.id
       INNER JOIN tag t
         ON t.id = at.tagid WHERE  t.name IN ("tag1", "tag2")

小昭归来
小昭归来
多条件与查询,用in(tag1,tag2)不得行哦
0
JerryYux
JerryYux

你的描述没看太明白,以下是我的想法:

把标签分类,比如 类型标签,来源标签,排名方式标签,然后sql如下

select sth from table where typetag=xxx and comefromtag=xxx and ordertay=xxx




JerryYux
JerryYux
回复 @小昭归来 : 那就把标签做成varchar2类型,从节目里去到某个条目的所有标签拼成字符串作为一个字段,select ... where ... and tag = 'tagstr'
小昭归来
小昭归来
这种方式的另一个缺点是,我无法扩展标签分类了,没扩展一次就要再加一个字段
小昭归来
小昭归来
恩,你这个就是我说的第一种方式
返回顶部
顶部