SQLite中使用的数据types

我很困惑什么声明为SQLite的数据types为以下内容:1.电子邮件2.电话号码3.密码(一些文章,我发现他们使用string,而不是int的电话号码和密码,为什么这样?)

Solutions Collecting From Web of "SQLite中使用的数据types"

SQLite中基本上有5种types的数据types:

1.)NULL 2.)BLOB 3.)INTEGER 4.)REAL 5.)TEXT

您可以在以下页面阅读SQLite数据types 。

至于你的问题

1.)由于Email可以包含字母数字和特殊字符,所以该字段必须声明为TEXT

2.)对于电话号码,您必须决定如何存储号码。 例如,其中一个人会希望他的电话号码被存储为

4567890

而另一些人则希望将相同的号码存储为

456-7890

在第first casedatatype would be INTEGER而在second case ,它将TEXT作为第二种情况由特殊字符组成。

3.)对于password ,使用TEXT因为它可以有任何字符。 一定要encryption它。

希望能帮助到你。 🙂

使用string的原因是,Sqlite变得非常灵活和dynamic。

检查这个链接: http : //www.sqlite.org/datatype3.html

前两个段落回答你所有的问题。

所有三个使用string。

string可以使用全部字符集,包括小写字母,大写字母,数字和特殊字符。 您提供的每个示例(电子邮件,电话号码和密码)都将使用完整字符集中的元素。 (电子邮件“@”,电话“ – ”和“()”,密码从select的字符集越大,密码就越有效。

string也可以使用正则expression式进行分析,以validation它们并实现数据库范围内的一致性。 例如,您可以为电话号码“++ 64 4 12345678”select一致的格式,并在将其保存到数据库之前使用RE来实现该状态。 同样你也可以使用RE去除所有多余的字符并将电话号码保存为int。

密码只使用int,具有10个字符的字符基础,全字符集具有(26 + 26 + 10 + 33)= 95个字符。 如果你的密码长度是8个字符,也就是10 ^ 8或者1亿个组合(微不足道的powershell)或者95 ^ 8,这个强度更大(难度更大)。