我正在编写一个架构来存储Vehicle记录。我想为每辆车存储最多62条信息("限制条件")(年份,品牌,型号,吸气,轮距,车身类型,车门数量等)。大多数车辆只会有5-10个限制。
我有大约1250万条记录要存储。我没有选择,只能使用在一台计算机上运行的单个数据库。
每个约束都存储为整数。另一个提供商,一个行业标准,为我提供了每个价值的标签。例如,54的品牌是"福特"。标签可以更新,但更常见的是添加新标签。
没有必填字段。有些公司按年份编制+制造+模型,其他公司按引擎编制,其他公司按传输方式编制,有些公司则按这些公司编制。
我可以创建一个包含至少62列的单个表。每列都将被索引,因为它们经常用于连接或在where子句中使用。或者我可以制作一个包含Id的车辆表,然后制作一个约束表,其中车辆ID为外键,单个车辆的单个约束信息。
单个表的优点是能够在没有任何连接的情况下检索一个车辆的所有约束,但是在每个记录的大多数列中都有一个NULL值,并且有很多索引。
一种设计通常优先于另一种吗?我已经使用我的原型进行了一些性能测试,并且没有看到查询时间的巨大差异。
每天从网站搜索并显示数百次车辆。
我目前在mssql 2008 r2中进行原型设计,但可以想象使用2012年。