这可能是一个简单的问题,但是在创建数据库时,你可以改为分配id而不是自动增加吗?
我想要做的是与人们建立一个数据库,我可以使用他们的电话号码进行查询,以获得有关该人在其他列中的更多信息。
可以这样做,或者我可以用自动递增ID创建数据库吗?
答案 0 :(得分:1)
我建议用一个用户表和他们的电话号码,并使用该表中的_id
列作为链接其他表的键。这将使您的维护更加轻松。
答案 1 :(得分:1)
Android使用sqlite数据库;它们带有一个“隐藏”的id列,该列自动递增,并链接到您定义为PRIMARY KEY的任何INTEGER列。
所以你无法摆脱额外的自动递增列(它由sqlite内部使用)。但是没有什么能阻止你定义你自己的非INTEGER类型的PRIMARY KEY列。如果这样做,隐藏的_id列将保持隐藏状态。
所以,你可以这样做:
CREATE TABLE people ( phone_number VARCHAR(12) PRIMARY KEY, firstname VARCHAR(32), lastname VARCHAR(32), ... );
并使用phone_number作为此表中的主键,而不必担心隐藏的_id列。
但是,我也建议(如Farray所做)使用整数ID。电话号码是一个非常糟糕的主键,因为人们的电话号码可能会改变,这意味着你必须更新许多表。此外,如果您不存储国际电话号码,您的电话号码可能不是唯一的,因此无法作为主键。