Android 像这样声明变量有什么问题吗?

Android 像这样声明变量有什么问题吗?,android,database,string,declare,Android,Database,String,Declare,这里有两个问题 在我的数据库中,我需要18个场地,因为在高尔夫中有18个洞(所以每个洞有18个用来存储命中率)。其次,我需要存储每个洞的码数(所以还有18个) 我的问题是,现在我宣布如下: public static final String KEY_H1 = "h1"; public static final String KEY_H1Y = "h1y"; public static final String KEY_H2 = "h2"; public static final String

这里有两个问题

在我的数据库中,我需要18个场地,因为在高尔夫中有18个洞(所以每个洞有18个用来存储命中率)。其次,我需要存储每个洞的码数(所以还有18个)

我的问题是,现在我宣布如下:

public static final String KEY_H1 = "h1";
public static final String KEY_H1Y = "h1y";
public static final String KEY_H2 = "h2";
public static final String KEY_H2Y = "h2y";
public static final String KEY_H3 = "h3";
public static final String KEY_H3Y = "h3y";
等等

h1为孔1 h1y为孔1码

有更好的方法吗?此外,在创建时,我必须调用H1H1Y h2y h3 h3y等

提前谢谢

编辑:1。这会对系统造成很大的负担,导致应用程序崩溃或运行变慢吗?
2.将来,更新数据库会很麻烦吗?

我会将其存储为字符串,因为您有从x到y的字段,这些字段应该始终以某种数组形式存在。我认为,最简单的方法是将其存储为:

命中:码数命中:码数命中:码数

在数据库中,然后按
拆分字符串


(作为对编辑的回应,是的,您当前的方式可能会使更新数据库结构变得不必要的困难。)

我只将其存储为字符串,因为您有从x到y的字段,这些字段应始终采用某种数组形式。我认为,最简单的方法是将其存储为:

命中:码数命中:码数命中:码数

在数据库中,然后按
拆分字符串


(作为对编辑的回应,是的,您当前的方式可能会使更新数据库结构变得不必要的困难。)

您可以使用“洞分数”表,而不是“高尔夫比赛分数”表。然后,此表可以包含一个用于球洞的int列、另一个用于码数的列和另一个game_id列。

您可以使用“球洞分数”表代替“高尔夫比赛分数”表。这个表可以包含一个洞的int列、另一个码数列和另一个游戏id列。

我有两个表,一个游戏表和一个洞分数表

游戏桌上会有日期和路线


洞分数表将包含洞号、码数、分数和游戏表中游戏记录的id。

我将有两个表,一个游戏表和一个洞分数表

游戏桌上会有日期和路线

球洞得分表将包含球洞编号、码数、得分和比赛记录的id。

抓住答案:假设在给定的一轮高尔夫比赛中,你想知道球员有多少小鸟、老鹰、转向架等;或者你想找出哪个洞对PAR有最好的分数,哪一个最差,等等。你真的想写同样的代码18次,一次为每个洞;或者,您是否希望能够编写一次代码,作为一个循环或对孔的查询,以找到结果

这就是为什么您真的,真的希望将孔编号作为一个参数,而不是为每个孔创建单独的静态变量或列的原因之一

要回答你问题的另一部分——声明大量公共静态最终变量是否会减慢系统的速度——答案是否定的。但在这种特殊情况下,它最终会减慢你的速度。

继续回答:假设在给定的一轮高尔夫赛中,你想知道有多少小鸟、老鹰、转向架,等等,玩家有;或者你想找出哪个洞对PAR有最好的分数,哪一个最差,等等。你真的想写同样的代码18次,一次为每个洞;或者,您是否希望能够编写一次代码,作为一个循环或对孔的查询,以找到结果

这就是为什么您真的,真的希望将孔编号作为一个参数,而不是为每个孔创建单独的静态变量或列的原因之一


回答你问题的另一部分——声明大量公共静态最终变量会不会减慢系统的速度——答案是否定的。但在这种情况下,它最终会减慢你的速度。

我怀疑Rob如果不走这条路,最终会后悔的。谢谢,我想我会尝试这条路,因为这更有意义。关于如何区分一组18孔和另一组18孔,你有什么建议吗?不使用课程名称,而是使用日期或其他什么?这取决于你想跟踪什么。“游戏id”列应该足以区分一组18洞和另一组18洞,但您也可以输入更多数据。如果日期对你很重要,那么一定要保存日期。如果知道这个游戏在哪一个特定的球场上很重要,也许可以添加一个带有球场数据的球场表,并在游戏表中添加一个球场id列。这完全取决于你想完成什么。@Rob:创建一个单独的表格,将每一轮作为一个整体记录下来。实际上,除了一个_id列之外,它不需要任何东西;这将为每个游戏提供一个唯一的id。然后在“holes_played”表中创建一个外键,该外键引用“rounds”表中的_id列。(当然,你可以在‘回合’表中添加额外的信息,比如日期/时间,课程名称等)一个其他的建议:试着保持静态数据——比如每个课程的名称、球员的名字、每个课程的每个洞的PAR等等——在单独的表格中,从更多的“动态”数据,比如每个洞的得分。这些项中的每一项都可能是它们自己的表中的行,每个行都有自己的唯一ID。这似乎增加了复杂性,但随着时间的推移(不是很长),它会在简单性中为自己付出代价。我怀疑Rob如果不走这条路,最终会后悔的。谢谢,我想我会尝试这条路,因为它更有意义。你对我如何区分一组18洞有什么建议吗