我现在正在擦洗头几个小时来解决以下情况:
网页上的几个Html表单由id标识。用户可以在客户端自己创建表单并填写数据。如何保证用户生成的表单的id是唯一的,并且在保存过程中不会发生任何冲突,因为同一个id是由其他人的客户端生成的。
问题/疑问:
问题(形成尽可能简单):
有没有一种方法可以让客户端创建/获取一个唯一的id,以后它将被用作数据库条目的主键而不会发生任何冲突?什么是最佳做法?
我目前的解决方案(不好):
根本没有唯一ID来识别表单。始终通过左连接组合来标识特定用户生成的表单。但是如果用户说:删除我的帐户(和我的user_id)但将数据保留在服务器上会发生什么。我会丢失用户ID,这个查询不再适用了......
我真的很抱歉,我无法用另一种方式解释它。但我希望有人能理解我所面对的问题,并且至少可以给我一些提示
非常感谢你!
答案 0 :(得分:2)
GUID(全球唯一标识符)可能有所帮助。见http://en.wikipedia.org/wiki/GUID
对于每个表单,客户端都可以生成新的GUID。理论上它应该是独一无二的。
答案 1 :(得分:0)
我只是在他们提交内容之前不向用户显示ID,此时他们可以看到生成的自动增量ID。它让事情变得简单。如果你真的需要它,你可以使用一个序列表,但它有一些警告,让我建议反对它:
CREATE TABLE sequence (id integer default 0, sequencename varchar(32));
递增:
UPDATE sequence
SET id = @generated := id + 1
WHERE sequencename = 'yoursequencename';
获得:
SELECT @generated;