Java 如何实现唯一的用户数据

Java 如何实现唯一的用户数据,java,android,sqlite,validation,Java,Android,Sqlite,Validation,我有一个安卓应用程序,可以组织一个项目列表。每个项目都有一个id字段,该字段必须是用户输入且唯一。此id存储在SQLITE数据库中。 我想知道验证用户输入以确保ID唯一的最佳方法是什么?拥有人类的控制ID通常是个坏主意。ID最好由数据库自动递增。也就是说,有一种方法可能有助于实现你的愿望 有一个数据库管理的“隐藏”ID和一个用户可以操作的可见“假”ID,并将隐藏ID作为主键。这确保了数据的完整性(此处)。您仍然需要一个单独的任务来检查用户是否输入了唯一的假ID,但如果您希望用户输入ID,这是无法

我有一个安卓应用程序,可以组织一个项目列表。每个项目都有一个id字段,该字段必须是用户输入且唯一。此id存储在SQLITE数据库中。

我想知道验证用户输入以确保ID唯一的最佳方法是什么?

拥有人类的控制ID通常是个坏主意。ID最好由数据库自动递增。也就是说,有一种方法可能有助于实现你的愿望

有一个数据库管理的“隐藏”ID和一个用户可以操作的可见“假”ID,并将隐藏ID作为主键。这确保了数据的完整性(此处)。您仍然需要一个单独的任务来检查用户是否输入了唯一的假ID,但如果您希望用户输入ID,这是无法避免的


我建议重新访问您的需求,让用户输入ID。如果您不需要这个要求,那么使用这个表可以省去很多麻烦。

我认为您可以使用ajax技术。当用户输入数据并单击enter或文本框变得不集中时,javascrpit会向后端发送一个ajax请求,以查询数据是否已出现。如果是,然后给用户一个提示。

如果查询结果为“无”或“0”,则查询刚刚输入的ID,那么这是一个唯一的ID,会不会太慢性能?那么将无法判断ID是否唯一,并且这只是一个不会影响太多的单次查询。您能给我一个查询的基本外观吗看起来怎么样?我知道,相信我,如果我能实现一个主键,那就不会那么头疼了。但是对于这个特殊的场景,我被要求允许用户操纵ID。它不是商业用途,所以它也是一个很好的学习体验。谢谢你的意见:)我听到了。在这种情况下,您可以优雅地处理当用户尝试将ID添加/更改为已经存在的ID时发生的故障。您可以让您的程序接受该请求,并自行检查是否存在具有该ID的记录。它可能会告诉用户由于ID重复,请求无效。请注意不要向用户透露太多信息。可能已经存在的ID是私人信息!在这种情况下,以类似“请求无效”的方式进行响应。