2011-06-16 5 views
0

ここには2つの質問があります。ゴルフで18のホールは、(その18各ホールのためのヒットを格納する。)第二に、私は各ホールのためのヤードを保存する必要がありますので、私のデータベースでこのような変数を宣言すると何か問題がありますか?

私は18個のフィールドが必要(そう18以上のthats。)

私の質問は次のように私はそれらすべてを宣言しています今、次のとおりです。など

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ヤードであること

これを行うには良い方法はありますか?また、作成時には、h1 h1y h2 h2y h3 h3yなどと呼び出す必要があります。

ありがとうございます!

EDIT:1.これは、システムに多くの負担をかけるもので、アプリケーションを爆発させたり、遅く動作させたりしますか? 2.将来、これはデータベースを更新するのに苦労しますか?

答えて

3

あなたは代わりに「ゴルフゲームスコア」テーブルを有するので、「Aを持つことができます「穴のスコア」表。このテーブルには、ホールのint列、yardageの別の列、および別のgame_id列を含めることができます。

+0

ロブがこのルートに行かなかった場合、ロブはそれを最終的に後悔していると思われます。 –

+0

ありがとう、私はそれがより意味をなさないので、私はこのルートを試してみると思います。 18ホールのセットを別のセットから区別するための提案はありますか?コース名の代わりに、日付などを使用していますか? – Rob

+0

本当にあなたが追跡したいものに依存します。 game_id列は、1組の18個の穴を別の穴と区別するのに十分なはずですが、さらに多くのデータを入れることもできます。日付が重要な場合は、必ず日付を保管してください。このゲームがどのコースで行われたかを知ることが重要な場合は、コース上のデータを含むコーステーブルを追加し、course_id列をゲームテーブルに追加してください。それはすべてあなたが達成したいことにかかっています。 – kabuko

0

あなたは常に、アレイ状のいくつかの並べ替えである必要がありXにY、から何かのためのフィールドを持っているので、私はただ、それを文字列として格納します。その後、:で文字列を分割し、データベース内の

hits:yardage hits:yardage hits:yardageetc...

:最も簡単な方法は、私が思うに、としてそれを記憶しています。

(そして、あなたの編集に対応して、はい、あなたの現在の方法は、おそらくそれが不必要に困難なデータベース構造を更新するようになります。)

0

私は2つのテーブル、ゲームテーブル、およびホールスコアテーブルを持っています。

ゲームテーブルには日付とコースがあります。

ホールスコアテーブルには、ゲームテーブルのゲームのレコードのホール番号、ヤード数、スコア、および_idが含まれます。

1

タックしてKabuku's答え:あるゴルフラウンドで、プレーヤーが持っていたバーディー、ワシ、ボギーなどの数を調べたいとします。またはあなたはどのホールがパーに対して最高のスコアを持っているかを知りたがっていますが、それは最悪のものでした。同じホールを1回ずつ18回同じコードを書きたいのですか?または、コードをループやクエリーとして一度書き込んで結果を見つけたいと思っていますか?

これは、穴ごとに別々の静的変数や列を作成するのではなく、穴番号をパラメータにしたいという理由の1つに過ぎません。

あなたの質問の他の部分に答えるには、多くの公的な最終的な変数を宣言するためにシステムが遅くなるでしょう - 答えはいいえです。しかし、この特定のケースでは、最終的に遅くなるでしょうダウン。

+0

私の主キーが_idかどうかは重要だと思いますか?私がそのキーを作るのを止める理由を考えようとしています。 – Rob

+0

@Rob:主キーカラムの名前として_idを使用すると、SQLiteとAndroidのAPIが本当に好きです。私は彼らと議論する理由がないと思う:-) –

関連する問題