我有很多领域是多值的,不知道如何存储它们?如果我做3NF,那么有很多表。例如:国籍。如何存储多值个人资料详细信息?
一个人可以有单身或双重国籍。如果双重这意味着它是一对多的。所以我创建了一个用户表和一个user_national表。 (已经有国籍查询表)。或者我可以将两个国家放入“美国人,德国人”相同的行,然后在运行时将其反序列化。但后来我不知道我是否可以搜索这个?如果我只搜索德国人,它会出现吗?
这是一个例子,我有30多个字段是多值的,所以我假设我不会为此创建61个表格? 1个用户表,30个查找表来保存每个多值项目的查找,30个表格保存多值项目的user_值?
你还必须记住,一些多值字段组合在一起,比如“我学过的大学”,它有一组字段,如大学名称,学位类型,时间线等。用户可以有1对许多这些。所以我假设我可以为这个像user_education这些字段创建一个单独的表,但让我们假设这些字段之一也是固定列表多值像我访问过的大学校园,那么我们将最终在一个永无止境的FK表链中对于社交网络来说不是一个好的设计,因为它的目标是将尽可能多的数据放入尽可能少的表中以提高性能。
好NoSQL的解决方案是一个新的领域,要学习他们的语法,所以等错误和延时的机会上去。在路上是的,这是计划,但现在我想快速启动。 – Brian04 2010-12-04 23:20:30