And*_*rey 3 sql database-design data-modeling denormalization
假设我提供用户检查她说的语言并将其存储在数据库中.重要的一点是,我不会搜索db中的任何值,因为我将有一些单独的搜索引擎用于搜索.现在,存储这些值的显而易见的方法是创建一个表格
UserLanguages
(
UserID nvarchar(50),
LookupLanguageID int
)
Run Code Online (Sandbox Code Playgroud)
但该网站将是高负荷,我们正试图消除任何可能的开销,所以为了避免在UI上显示结果时与主成员表的连接,我想在主表中为用户存储语言,拥有它们逗号分隔,如"12,34,65"
同样,我不搜索它们,所以我不担心必须在该列上进行全文索引.
我真的没有看到这个解决方案的任何问题,但我忽略了什么?
谢谢,安德烈
gbn*_*gbn 15
别.
不过,这是你的系统,我期待以后回答不可避免的"帮助"问题......
Jer*_*que 12
你现在可能不会遗漏任何东西,但是当你的需求发生变化时,你可能会后悔这个决定.你应该像你建议的第一直觉那样将它标准化.这是正确的方法.
你所建议的是经典的过早优化.您还不知道该加入是否会成为瓶颈,因此您不知道您是否真的在购买任何性能改进.等到您可以对事物进行分析,然后您就会知道是否需要对该部分进行优化.
如果是这样,我会考虑一个物化视图,或者使用规范化数据预先计算答案的一些其他方法到不被视为记录簿的缓存.
更一般地说,如果需要,可以进行许多可能的优化,而不会以您建议的方式影响您的设计.
Raj*_*ore 11
这种类型的存储几乎总是回来困扰我.首先,你甚至不是第一个正常的形式.对于另一个,一些经理或其他人肯定会回来说..."嘿,既然我们存储了这个,你能不能给我写一份关于...的报告?"
我建议采用标准化设计.把它放在一个单独的表中.
问题: