2013-02-17 80 views
0

我有一個數據庫很少有表。我想知道,在數據庫中創建表的最佳方法是什麼?我的表包含字符串(文本)和數字(int和雙精度)。我應該使用所有數據類型text,int,double等來創建表格,還是應該在插入和讀取顯示之前創建包含所有文本的表格並將其轉換。Sqlite數據庫創建,最佳實踐Android

比方說,這是我有表...

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)"); 

而不是創建具有不同數據類型的表,如果我創建了所有「文本」 S桌子上做要緊的轉換字符串需要時。

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)"); 

之前將數據插入到表中,我將所有的值轉換爲字符串,並同時從表中檢索值,(用於計算),我將它們轉換回到各自的數據類型。爲了在屏幕上顯示,我可以直接使用它們作爲字符串。

如果我像上面那樣創建表,那麼與創建具有所有數據類型的表相比,有哪些缺點/優點?

+1

記住SQLite並不真的'擁有'[數據類型](http://www.sqlite.org/datatype3.html)。 – wtsang02 2013-02-17 03:15:14

+0

哦,Okie ..但你覺得更方便的方法是什麼? – 2013-02-17 03:26:36

+0

@ wtsang02,您的評論不正確。 SQLite區分文本和數字,所以它肯定具有類型親和力。 – 323go 2013-02-17 04:41:00

回答

0

總是使用正確的數據類型創建您的表。在SQLite中,你不需要區別BYTE和INTEGER或VARCHAR(n)和TEXT,數字和字符串之間有明顯的區別。使用準確的類型可以讓你的模型更易於理解,並且可以防止無效的值,即數字字段中的字符串。從數字字段到字符串的轉換很便宜;也考慮到你可能想要適當地設置貨幣值。因此,將它們存儲爲字符串不僅不切實際,而且可能使代碼嚴重複雜化(並且破壞)。