我有一个包含很少表的数据库。我想知道,在数据库中创建表的最佳方法是什么。我的表包含字符串(文本)和数字(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)");
如果我使用所有“text”创建表,并在需要时对字符串进行必要的转换,而不是使用不同的数据类型创建表。
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)");
在将数据插入表之前,我将所有值转换为字符串,并在从表中检索值时(对于计算)我将它们转换回相应的数据类型。为了在屏幕上显示,我可以直接将它们用作字符串。
如果我如上所述创建表,那么与使用所有数据类型创建表相比有哪些缺点/优势?
答案 0 :(得分:0)
始终使用正确的数据类型创建表。在SQLite中,您不需要区分BYTE和INTEGER或VARCHAR(n)和TEXT,数字和字符串之间存在显着差异。使用准确的类型可以使您的模型更易于理解,并且可以防止无效值,即数字字段中的字符串。从数字字段到字符串的转换很便宜;还要考虑您可能需要正确格式化货币值。因此,将它们存储为字符串不仅不切实际,而且可能会使代码严重复杂化(并破坏)。