首先,您无法真正衡量表格的“效率”。您可以衡量查询的性能。其次,即使从空间的角度来看,将值存储在一行中也可能不是一种胜利。存储被值占用,即使它们是NULL. 在适当的连接/关联表中,不会有行。因此,如果您平均每个帖子有一个或两个标签,那么关联表可能会使用更少的空间。第三,在单独的列中管理标签很痛苦。要搜索一个标签值,您必须执行以下操作:where @tag in (tag1, tag2, tag3, tag4, tag5)你猜怎么着?那不会使用任何索引。然后,如果您想确保所有标签都是唯一的?您可以使用唯一约束吗?呃,没有。尝试使用以下逻辑的触发器:(tag1 <> tag2 or tag1 is null or tag2 is null) and(tag1 <> tag3 or tag1 is null or tag3 is null) and. . .-- there are lots of combinations so give yourself some time这些是关联表通常是最佳方法的几个原因。在某些情况下,使用不同的列是一个很好的解决方案,但默认值应该是正确的连接/关联表。