2012-07-22 100 views
0

所以,我想要一張我必須及時表示的數據表。允許時間的數據庫設計

也就是說,我希望隨時間收集數據,並將其記錄下來。

目前,該表具有一個id,一個包含類別名稱的列和一個值列。

大約有10個類別 - 每個類別都有一個與現在出現次數相關的值。

在這種情況下表示時間的最有效方式是什麼?爲每行分配一個時間戳列?然後,當我想顯示這些信息時,只需通過時間戳收集?我真的在這裏失明。

這是否需要具有多個重複的類別列值?

這都是在MySQL中。

讓我澄清一下:

三列:

ID |類別|值

我想隨着時間的推移記錄值 - 我將每小時進行一次解析。

類別將是這樣的:

快樂

悲傷

憤怒

我如何與該記錄時間數據?我想保持每小時的值。

我在考慮重複所有的類別與時間戳數據。這是最好的主意嗎?

所以你必須

Category | Value | Time 
Happy | 0 | 072012 
Happy | 2 | 072112 
Happy | 1 | 072212 

等 - 這是我在想應該做些什麼來存儲不斷變化的數據。

+0

你的問題是模糊的。你能用一個例子來詳細闡述一下嗎?是否足夠添加時間戳到每一行(我推薦無論如何)?或者你問的東西有點不同。 – 2012-07-22 16:33:41

回答

1

什麼是時間戳,與類別或子類別相關的數據?如果它與該類別相關,則將該時間戳字段添加到該類別可能是最好的。如果它是一個現在(或將來)與孩子中的交易相關的概念(所以孩子已經擁有這個信息),我可能會使用查詢/視圖(如果存在性能問題,則使用物化視圖) 。它也可能取決於您看到時間戳更改的頻率以及對下級表可能存在的數據訪問需求。

+0

發佈一些其他信息 – 2012-07-22 18:13:25

0
  • MeasuredAt是時間戳
  • 您可以使用FeelingName代替int ID太多,它只會佔用更多空間。

enter image description here


編輯

enter image description here

+0

Whaa?你在哪裏找人?沒有人。這是從Twitter收集數據。我想我們可以用「實例」替換人 - 也就是解析的實例 - 是否相當於? – 2012-07-23 13:11:35

+0

@AndrewAlexander;好 - 那麼它就相當於只有一個「通用」人員,所以從模型中刪除「Person」表和「PersonID」。將'PersonFeeling'重命名爲更適合的內容 - 比如'TwitterMood'或... – 2012-07-23 13:27:11

+0

哪個FK應該是約束條件(比如哪個表應該被約束)?我不清楚FK應該如何有效使用。 – 2012-07-23 14:30:01