[英]Storing chart data in database
我有一個要用於創建圖表的Web應用程序(Rails)。 現在我要做的是:
但是我真的不喜歡這種解決方案,因為每次都會重新創建圖表,並且最重要的是我希望能夠在一段時間內對圖表數據進行一些統計 ,如果我將它們保存在文件中,這很困難...
每個樣本大約有1000行,因此每次創建樣本時要存儲1000個新行似乎是“不常規的”?
今天我有:
Sample
..... id : int
..... attachment : txt file containing the data
可以將其更改為:
Sample
..... id : int
..... attachment : txt file containing the data
..... chart_data_id : associated ChartData
ChartData
..... id : int
..... x : int
..... y : int
我希望我的解釋很清楚...例如,在我的數據庫中,我將有一個has_many ChartData的示例:
Sample(id: 1, attachment: my_file, chart_id: 10)
ChartData(id: 10, x: 0, y: 1)
ChartData(id: 10, x: 3, y: 2)
ChartData(id: 10, x: 5, y: 7)
.....
謝謝
一般來說,擁有一個ChartData
對象是一種很好的解決方法,正如您已經猜到的那樣。 但是,如果Sample
has_many :chart_data
,則外鍵在ChartData
表中需要為sample_id
,以便ChartData
可以具有唯一的ID。
即使這不是經常使用的模型結構,任何中途的體面數據庫都可以毫無問題地存儲數百萬行(在SQLite中,最大值為2 ^ 64)。 您確實需要很多示例才能使它變得有問題,即使如此,也存在一些使之起作用的機制(即分區等)。
但是,也有其他可能性。 例如,如果您使用PostgreSQL,並且只要ChartData
的唯一屬性是x
和y
,則可以考慮使用Point數組作為包含數據的屬性。
就像是
create_table :samples do |t|
t.point :chart_data, array: true, default: []
end
點是Rails開箱即用支持的唯一幾何類型,從數據庫中檢索后將被視為數組 。
或者,您甚至可以使用JSON類型在數據庫中存儲哈希或數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.