2014-04-12 35 views
0

我想讓數據庫管理人員之間的開支。我想要一張桌子,我可以節省多少歐元花在每個人身上。如何在SQLite中定義一些表格

我有一個表叫人只有兩列,_id和名稱。

然後我試圖用_id創建一個表,總金額並節省多少歐元花費每個人。我正在考慮用每個人的_id列出一個專欄,並列出了多少歐元的花費,但我不知道該怎麼做。

例如:

Example1

或者,也許我可以利用一些列來存儲的ID和金額,這樣的: (這是相同的例子)

example2

預先感謝您!

回答

1

您提出了兩個單獨的SQL反模式。一列是由另一個表命名的列,另一列是blah_1,blah_2 ......列系列。在每種情況下,他們都表示你正在考慮這個錯誤; 數據庫不是電子表格

你會好起來的具有記錄事務ID,ID的人又有多少,他們花(省略_id爲清楚起見)之間的唯一映射表:

txID | personID | spend 
-----+----------+------- 
1 | 1  | 10 
2 | 1  | 5 
2 | 2  | 10 
3 | 2  | 10 
3 | 3  | 10 
4 | 1  | 4 

你要指定組合txIDpersonID是獨一無二的,但並不是說這兩列本身都是唯一的。
現在,這並不是說你已經失去了任何人花費的金額或其他基本彙總信息。然後,您可以導出使用查詢類似於事務中花費的總金額:

SELECT SUM(spend) AS "Total amount" FROM spendTable WHERE txID = 2 

但是,你也可以做這樣的事情找出有多少人花了總數:

SELECT SUM(spend) FROM spendTable WHERE personID = 1 

這樣的查詢是完全明智的,並且對於您提出的第二個表格設計來說會更困難。 (第一個設計會更好,除了那麼你不能真正明確與PEOPLE表通過外鍵關係聯繫起來,這隻要你開始做任何事情更復雜的事情做多棘手