首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规范化:对于小单词(需要更多的查询),值得吗?

规范化:对于小单词(需要更多的查询),值得吗?
EN

Stack Overflow用户
提问于 2015-11-09 03:26:58
回答 1查看 29关注 0票数 2

假设我有一个表(数十万行),我的用户存储他们的游戏结果。在一排,连同6个结果,我存储了他们玩时使用的“对象”和他们使用的“技术”。在我的情况下,大约有30种可能的不同对象和10种可能的不同技术。每一个对象和技术都是一个字长。

根据规范化,我将创建一个“对象”和“技术”表,其中每个对象和技术都被赋予一个唯一的ID,然后使用外键将它们从列出所有结果的大表中链接起来。所以,与其把对象的名字放在大表中,我应该有一个1-30的数字。

我的用户将在大表中执行许多查询来搜索结果WHERE object = "objectname" AND technique = "techniquename"。如果我使用外键,我将需要3个查询,而不是一个(首先获得objectID和techniqueID,最后搜索大表中匹配的结果)。

那么,考虑到数据库将收到3倍多的查询,这是否值得呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-09 03:31:24

通常不会有3个查询,而是有一个连接了三个表的查询。只要在所有外键上都有工作索引,速度上的差异是可以忽略不计的,健壮性方面的增益是无价的(还有更好的空间效率,但今天的磁盘很便宜,因此这是次要的兴趣)。

代码语言:javascript
复制
SELECT *
FROM hundreds_of_thousands R
JOIN techniques T ON T.id = R.technique_id
JOIN objects O ON O.id = R.object_id
WHERE O.name = "objectname"
  AND T.name = "techniquename"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33602076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档