sql-server - 标签的无连接表结构

标签 sql-server database database-design architecture

我正在开发一个小型博客软件,我想在帖子上附加标签。每个帖子可以有 0 到无限个标签,我想知道是否可以在不连接表的情况下做到这一点?

由于标签的数量没有限制,我不能只创建 n 个字段(Tag1 到 TagN),所以另一种方法(显然是 StackOverflow 采用的方法)是使用一个大文本字段和一个分隔符,即“<标记 1><标记 2><标记 3>”。

那里的问题:如果我想显示所有带有标签的帖子,我将不得不使用“Like '%%'”语句,而那些 AFAIK 可以不使用任何索引,需要全表扫描.

有什么合适的方法可以解决这个问题吗?

注意:我知道单独的 Tag-Link-Table 有好处,我不应该担心没有测量等的性能。我对设计系统的不同方法更感兴趣。

最佳答案

想要在没有连接的情况下执行此操作让我觉得是过早的优化。如果此表被频繁访问,它的页面很可能在内存中,您不会从中读取 I/O 惩罚,并且访问它的查询计划很可能被缓存。

关于sql-server - 标签的无连接表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1146044/

相关文章:

SQL IsNumeric 不起作用

c# - 如何关闭 Microsoft.Practices.EnterpriseLibrary.Data.ExecuteNonQuery 的连接

sql - 如果限于本地机器,最好使用 R 和 SQL

mysql - 如何高效地一次获取数据并统计行数?

sql - 为什么将表关系存储在不同的表中?

python - 来自 Python 的多行 UPSERT(INSERT 或 UPDATE)

sql-server - 启用 xp_cmdshell 不起作用

mysql - SQL Server 和 MySql 中的密码限制

database - 更改数据库模型 - Sequelize

mysql - 在 MySQL 中查找间隔行