2010-08-12 94 views
1

我是新來的數據庫設計,我考慮實施一些耗時的工作,所以我想先問一下這是否是最好的選擇。數據庫設計:繪圖存儲

事實:

  • 對於我而言在這裏,讓我們定義一個陰謀,是一組的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 ......因此,我仍然處於面向對象的設計思維。

+0

爲什麼不直接存儲在Serializable類和寫入XML呢? – 2010-08-12 14:25:32

回答

1

想法2是做到這一點的正確方法。關於性能,請確保您在對中放置索引,以便快速訂購和加入。同時保持數據類型儘可能小,你會驚訝地發現有人用一個大整數來表示某個值,例如他們知道這個值永遠不會大於10。

1

想法2沒有問題,只要所有地塊都有單個Y值 - 只有一條曲線。如果某些地塊的曲線很少,那麼從電子表格製圖中借用一系列概念可能會有所幫助。

  • 一系列是一列(或行)的數字 - 矢量。
  • 一個情節可以有很多系列。
  • 一個系列可以被許多地塊使用,例如,如果X軸代表時間間隔,許多地塊共享相同的軸。
  • OrientationPlotSeries表中放置了一個關於X或Y的系列,因此可以有多個使用相同數據展示序列的圖。
  • OrderNoPlotSeries表定義哪個系列首先被繪製出來,並且可用於爲每條曲線分配默認顏色。

plot_model_v2