[英]Assigning android database id
这可能是一个简单的问题,但是在创建数据库时,你可以改为分配id而不是自动递增吗?
我想要做的是与人们建立一个数据库,我可以使用他们的电话号码进行查询,以获得有关该人在其他列中的更多信息。
可以做或者我可以做同样的事情创建具有自动递增ID的数据库?
我建议用一个用户表和他们的电话号码,并使用该表中的_id
列作为链接其他表的键。 这将使您的维护更容易。
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。 电话号码是一个非常糟糕的主键,因为人们的电话号码可能会改变,这意味着你必须更新许多表。 此外,如果您不存储国际电话号码,您的电话号码可能不是唯一的,因此无法作为主键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.