数据库设计:绘图存储
问题描述:
我是新来的数据库设计,我考虑实施一些耗时的工作,所以我想先问一下这是否是最好的选择。数据库设计:绘图存储
事实:
- 对于我而言在这里,让我们定义一个阴谋,是一组的x,y对。
- 图可以有不同数量的x,y对。
- 此外,对于特定情节,可以添加或删除x,y对。
- 我会有成千上万的地块,每块地块可能会有数百对。
- 在应用程序中,我将不得不定期收集数千个地块,并将这些地块整合到一个已知域中,对这些积分进行求和,并将此值呈现给用户。
我需要设计一种方法将它存储在数据库中,以便快速检索,修改和存储绘图。
想法1:创建一个Plot
表,其中包含x val的文本列表和y val的文本列表并在程序中解析它们。 (我在前面的问题中询问过这个问题,这个想法是由SO社区立即执行的!我想我明白为什么了。)
想法2:创建一个包含plot的元数据的Plot
表, 单位)。但是,然后创建Pairs
表,其中每行包含一个x val a y val和一个指向Plot
表中相应行的外键。当试图绘制一个Plot
时,我将不得不在数据库中查询所有对应的Pair
,并在我绘制它们之前对它们进行排序。这里有什么愚蠢,耗时或者耗费记忆的东西吗?
想法3:以上都不是......想出一个比我迄今为止想到的更好的产品。
注意:我不得不使用Microsoft SQL Express,而且我不确定什么时候会碰到SQL Express可以执行的操作。另外,在我开始学习数据库的基础知识之后,我有点好奇地学习了Linq-to-SQL ......因此,我仍然处于面向对象的设计思维。
答
想法2是做到这一点的正确方法。关于性能,请确保您在对中放置索引,以便快速订购和加入。同时保持数据类型尽可能小,你会惊讶地发现有人用一个大整数来表示某个值,例如他们知道这个值永远不会大于10。
为什么不直接存储在Serializable类和写入XML呢? – 2010-08-12 14:25:32