2017-06-05 79 views
0

對數據庫的使用經驗非常有限,並試圖找出創建不斷增長的用戶數據庫並追蹤其增長信息的最佳方法。例如,我有3個用戶 - Apple,Banana,Cherry。他們都有一個與他們相關的信息列表。ArrayList數據庫MySQL

Apple: [1/1/17, green, 3], [2/4/17, red, 5], [4/19/17, blue, 2] 
    Banana: [2/18/17, yellow, 6], [5/14/17, yellow, 5] 
    Cherry: [5/21/17, green, 12], [8/2/17, red, 5], [9/29/17, blue, 42], 
    [1/1/17, green, 3] 

在開始使用不斷增長的列表之前,它是如何應用於數據庫的?

我是否創建了一個主數據庫,如FruitDatabase,然後在這些數據庫中有Apple,Banana和Cherry作爲自己的表?

還是每個用戶得到他們自己的數據庫,然後他們的相關信息被應用到他們自己的表(這似乎並不高效)?

如果我後來想要加起來所有蘋果電話的號碼(3 + 5 + 2),那麼最好的方法是什麼?它似乎並不像我可以把一個ArrayList到數據庫中,我只是將它轉換爲一個字符串,並用逗號分隔數字?如果我想添加一個新用戶DragonFruit,將它作爲列或行添加會更有效嗎?

回答

1

您可以創建如下表格來表示您的數據。

create table fruit_type (
    fruit_type_id int, 
    name varchar(20), 
    color varchar(10), 
    primary key(fruit_type_id) 
); 

create table fruits (
fruit_id int, 
date_added date, 
count int, 
foreign key (fruit_id) references fruit_type(fruit_type_id) 
) 

之前將數據插入fruits表,你需要爲每個水果類型行fruit_type表。

0

這種方式的工作方式是,你應該有1個數據庫/架構爲你的整個應用程序說Fruit_Management。在那裏你應該有一張名爲水果的表。 這個水果表將有5列,即ID,類型,日期,顏色和數量。 它將映射到1,蘋果,1/1/17,綠色,3.現在,如果你想獲得蘋果的總數,你可以從Fruits中選擇count(*),其中Fruits.type ='Apple' 。

這樣你的模式保持靈活和規範化。