0

テーブルがほとんどないデータベースがあります。データベースにテーブルを作成する最良の方法を教えてください。私のテーブルには、文字列 (テキスト) と数値 (int と double) の両方が含まれています。すべてのデータ型 text、int、double などを含むテーブルを作成する必要がありますか、またはすべてのテキストを含むテーブルを作成し、挿入して表示用に読み取る前にそれらを変換する必要があります。

これが私が持っているテーブルだとしましょう...

sqlDB.execSQL("create table if not exists "+scriptName+"(dateofpurchase text, buyorsell text," +
                " purchasedquantity int, purchasedprice double, investmentwithoutbrokerage double," +
                " brokerage double, servicetax double, stt double, stampduty double, othertaxes double," +
                " investmentwithbrokerage double)");

異なるデータ型でテーブルを作成する代わりに、すべての「テキスト」でテーブルを作成し、必要に応じて文字列に対して必要な変換を行うとします。

sqlDB.execSQL("create table if not exists "+scriptName+"(dateofpurchase text, buyorsell text," +
                    " purchasedquantity text, purchasedprice text, investmentwithoutbrokerage text," +
                    " brokerage text, servicetax text, stt text, stampduty text, othertaxes text," +
                    " investmentwithbrokerage text)");

データをテーブルに挿入する前に、すべての値を文字列に変換し、(計算のために) テーブルから値を取得するときに、それらをそれぞれのデータ型に変換します。画面に表示するために、文字列として直接使用できます。

上記のようにテーブルを作成した場合、すべてのデータ型でテーブルを作成する場合の欠点/利点は何ですか?

4

1 に答える 1

0

常に適切なデータ型でテーブルを作成してください。SQLite では、たとえば BYTE と INTEGER、または VARCHAR(n) と TEXT を区別する必要はありませんが、数値と文字列には顕著な違いがあります。正確な型を使用すると、モデルがより理解しやすくなり、数値フィールドの文字列などの無効な値を防ぐことができます。数値フィールドから文字列への変換は安価です。また、通貨の値を適切にフォーマットすることも考慮してください。したがって、それらを文字列として保存することは非現実的であるだけでなく、コードを非常に複雑にする (そして壊す) 可能性があります。

于 2013-02-17T04:44:33.290 に答える