繁体   English   中英

分配android数据库ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM