我想在数据库中为一行存储大量数据(日期),正确的方法是什么?
我将举一个例子:
如果我有各种各样的水果,我想数一个月里我吃了多少水果,吃了多少果实。
这就是我现在想做的,我不确定这是正确和最好的方式:
"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。
这应该是足够的信息来了解谁什么时候吃了什么。而不会将您的实际数据与元数据(人和水果)混合。。