如何在一个表(MySQL DB)中为一行存储大量数据(超过3000行)


How to store a lot of data (more than 3000 rows) for one row in a table (MySQL DB)?

我想在数据库中为一行存储大量数据(日期),正确的方法是什么?

我将举一个例子:

如果我有各种各样的水果,我想数一个月里我吃了多少水果,吃了多少果实。

这就是我现在想做的,我不确定这是正确和最好的方式:

"Fruit" Table: 
f_id, f_name (fruit name), f_data (fruit count for each day). 

然后创建一个名为的新表

"Data": 
dat_id, dat_date, dat_count, dat_friend_count. 

并将唯一的fruit_ id与dat_。(1:n)

例如,每当我想得到:我吃的所有苹果的显示->苹果ID为7时,我会在"数据"表中查找ID号7,并将它们与日期一起显示给用户。

这是处理这种数据/表结构的正确方法吗?

不,从关系的角度来看,您的示例是不正确的。

你应该有两张桌子:

Table "Fruit"
id | fruit_name

(这是你储存关于你有哪种水果的信息的地方)

Table "Eat"
id | fruit_id | fruit_count | date

(这是你记录所有行动的地方,即你每次吃水果的时间和数量)

然后,为了了解你在2015年12月总共吃了多少水果,你可以写一个SQL查询:

SELECT COUNT(eat.fruit_count) FROM fruit
LEFT JOIN eat ON eat.fruit_id = fruit.id
WHERE eat.date >= '2015-12-01 00:00:00' AND eat.date <= '2015-12-31 23:59:59'

要了解一种特定的水果你吃了多少水果,你应该在WHERE子句中添加水果ID:

SELECT COUNT(eat.fruit_count) FROM fruit
LEFT JOIN eat ON eat.fruit_id = fruit.id
WHERE eat.date >= '2015-12-01 00:00:00' AND eat.date <= '2015-12-31 23:59:59' AND fruit.id = '1'

对您的问题一无所知。我想要三张桌子。。

1) 水果桌。。描述了所有的水果

idfruit,水果名称,水果描述

2) 一个人桌。。描述人们

idperson,personname,以及作为附加列的任何其他属性,

3) 一个水果跟踪表,跟踪每一个吃水果的

idfruit,idperson,eatdatetime。

这应该是足够的信息来了解谁什么时候吃了什么。而不会将您的实际数据与元数据(人和水果)混合。。