如何在 table (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). 

然后创建一个名为

的新 table
"Data": 
dat_id, dat_date, dat_count, dat_friend_count. 

并将唯一的 fruit_id 与 dat_id 连接起来。 (1 : n)

每当我想得到例如:显示我吃过的所有苹果 -> 苹果 ID 是 7,我在 "Data" table 中查找 ID 号 7,并为用户显示日期。

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

对你的问题了解不多。我会有三个 tables..

1) 一个水果table..描述了所有的水果

idfruit, fruitname, fruitdescription

2) 一个人table..描述人

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

3) 一个水果跟踪器 table 跟踪每个吃水果的实例

idfruit、idperson、eatdatetime。

这应该足以找出谁在什么时候吃了什么。无需将您的实际数据与您的元数据(人和水果)混合..

不,从关系的角度来看,你的例子不正确。

您应该有两个表:

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'