0

我决定创建一个包含多达 20,000 多个学生资料的数据库,每个学生资料都有 120 多个属性,

在 DOTNETNUKE CMS 等许多企业项目中,使用的方法是两张表,一张是 UserProfile :

[ProfileID],[UserID],[PropertyDefinitionID],[PropertyValue]

另一个是: ProfilePropertyDefinition

[PropertyDefinitionID],[DataType] ,[PropertyCategory],[PropertyName]

如果我使用这种方法,我将有 20,000 x 120 = 240 万行!

我知道这是正确的方法,拥有一个规范化的数据库,而且我知道,创建数据库服务器是为了处理数百万条记录,但我想知道,为什么我们不创建一个包含 120 列 + 足够备份列的配置文件表为了可扩展性?如果性能很重要,是不是弊大于利?

4

1 回答 1

1

为什么我们不创建一个包含 100 列 + 足够的备份列以实现可扩展性的配置文件表?

您的其他设计更具可扩展性。您不限于 120 行。

就性能而言,您必须测试两种不同的数据库设计,但您所讨论的 ProfilePropertyDefinition 表可能包含 240 万个 100 字节行,而不是 2 万个 50 千字节行。

除非您一直在阅读所有行,否则较短的行通常表现更好。

于 2012-10-17T15:44:06.533 回答