相关疑难解决方法(0)

标记数据库设计

您将如何设计数据库以支持以下标记功能:

  • 项目可以包含大量标签
  • 搜索标记有给定标记集的所有项目必须快速(项目必须包含所有标记,因此它是AND搜索,而不是OR搜索)
  • 创建/写入项目可能较慢以启用快速查找/读取

理想情况下,使用单个SQL语句查找使用(至少)一组n个给定标记标记的所有项目.由于要搜索的标签数量以及任何项目上的标签数量未知且可能很高,因此使用JOIN是不切实际的.

有任何想法吗?


谢谢你到目前为止的所有答案.

但是,如果我没有弄错的话,给出的答案显示了如何对标签进行OR搜索.(选择包含一个或多个n标签的所有项目).我正在寻找一个有效的AND搜索.(选择所有包含所有n个标签的项目 - 可能还有更多.)

sql tags tagging database-design

167
推荐指数
6
解决办法
7万
查看次数

你如何做很多表外连接?

我有3个表,foo,foo2bar和bar.foo2bar是foo和bar之间的多对多地图.这是内容.

select * from foo
+------+
| fid  |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+

select * from foo2bar
+------+------+
| fid  | bid  |
+------+------+
|    1 |    1 |
|    1 |    2 |
|    2 |    1 |
|    2 |    3 |
|    4 |    4 |
+------+------+

select * from bar
+------+-------+------+
| bid  | value | zid  |
+------+-------+------+
|    1 |     2 |   10 | …
Run Code Online (Sandbox Code Playgroud)

sql many-to-many join operator-precedence

14
推荐指数
2
解决办法
1万
查看次数

(数据库设计 - 产品属性):什么是产品属性数据库设计的更好选择?

我是数据库设计的新手.对于cms的产品属性数据库设计有什么更好的选择?(请另外建议其他选项).

选项1:1表

products{
id
product_name
color
price
attribute_name1
attribute_value1
attribute_name2
attribute_value2
attribute_name3
attribute_value3
}
Run Code Online (Sandbox Code Playgroud)

选项2:3表

products{
id
product_name
color
price
}

attribute{
id
name
value
}

products_attribute{
products_id
attribute_id
}
Run Code Online (Sandbox Code Playgroud)

谢谢你,约瑟夫

database-design relational-database entity-attribute-value

9
推荐指数
1
解决办法
1万
查看次数

标签系统中标签的ID

我正在实现类似于StackOverflow标签系统的标签系统.我在考虑存储标签并与问题相关时,该关系将直接与标签名称相关,或者最好创建字段tagID以将问题与标签"链接"?看起来直接链接到标签名称更容易,但它看起来不太好,主要是为什么在使用统计和/或标签分类(恕我直言)时很难管理这个.另一个问题是当一个管理员决定"修复"标签名称时.如果没有tagID与标签名称分开,那么我将更改表格的键...

你有什么想法?

感谢所有回复.我将删除此帖子,因为有另一篇帖子具有相同的主题.我想知道为什么搜索和建议没有显示给我的结果......

database tags database-design primary-key

4
推荐指数
1
解决办法
807
查看次数