gpt4 book ai didi

mysql - 用于在mysql中存储多个用户随时间变化的高度和体重(等)的数据结构

转载 作者:行者123 更新时间:2023-11-29 08:51:09 24 4
gpt4 key购买 nike

我正在尝试为我的本地主机开发一个应用程序,在该应用程序上我可以跟踪一段时间内的 body 属性(高度、体重、体内水分、体脂等),以便与卡路里摄入量进行比较,以用于膳食计划等。这是我现在拥有的:

DB surname
TBL home
memberID (tiny int, 1, auto increment, primary key)
name (varchar, 30)
gender (char, 1) ->value should be m or f, but this isn't defined anywhere
birthdate (datetime)

为了随着时间的推移存储物理数据,我考虑过使用一个具有三列主键(日期、人员、测量类型)的表,并且每列上都有常规单列索引,以便我可以查找某个表的所有条目。日期或对于一个人或对于测量类型。像这样:

DB surname
TBL stats (or something to that effect)
date (datetime, PK1, index)
memberFK (tiny int, 1, PK2, index)
type (varchar, 3, PK3, index) -> possible values should be ht | wt | fat | wat maybe others will also become necessary
value (decimal, 4/1) -> store all values in nnn.n format in a particular system (ie metric) and do any conversions, add units, etc when the data is called

这似乎仍然会产生很多多余的冗余,因此我想到也许将每个用户的测量结果存储在他们自己数据库的表中,如下所示:

DB user1
TBL stats
date (datetime, PK1, index)
type (varchar, 3, PK2, index)
value (decimal, 4/1)

这似乎通过从外键(以及整个表)中删除一列来稍微清理它,但也阻止我在该表和其他非用户特定的营养相关表之间使用外键。另一方面,我计划为其他家庭主题开发应用程序,其中包含通用数据和用户特定数据,因此如果有在数据库之间使用数据的好方法,这可能是最好的方法。

所以这些对我来说似乎都不完全正确,但我不知道如何让它们变得更好。我倾向于第二个例子,前提是我能找到保持数据完整性的方法。请提出任何您认为有帮助的建议。谢谢!

最佳答案

我会这样做

DB healthstats
TABLE user
memberID (int*, auto increment, unsigned zerofill, primary key)
name (varchar, 50)
gender (char, 1) ->value should be m or f, but this isn't defined anywhere
birthdate (datetime)

TABLE reading
readingID (int*, auto increment, unsigned zerofill, primary key)
memberID (int*, FK: TABLE user)
date (datetime)

TABLE stat
statID (int*, auto increment, unsigned zerofill, primary key)
readingID (int*, FK: TABLE reading)
type (varchar, 3)*
value (decimal 4.1)*

* 这些数据类型由您决定,只要确保主键和外键匹配即可。

stat 是一种测量值(例如高度、体重、体脂等)。读数 定义为一个或多个 stat 测量值同时拍摄。

请注意,这一切都在同一个数据库中,并且包含三个表。

关于mysql - 用于在mysql中存储多个用户随时间变化的高度和体重(等)的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com