2017-06-05 83 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' 。

这样你的模式保持灵活和规范化。