是否可以为我的sqlite数据库生成一个随机且唯一的5位数ID?

时间:2014-01-16 07:08:06

标签: javascript python database flask flask-sqlalchemy

我想为db表中的每个条目生成一个ID。它看起来像这样:nov45833。

前三个字符对于我的表名称是唯一的,nov用于小说,com用于漫画等。接下来的5个数字是随机生成的数字。如果我想删除该条目,我只需调用该条目的存储ID(例如... / delete / nov45833)即可。我也希望ID是唯一的(所以我不删除错误的条目)。

我原来的计划是点击一个按钮,因为我正在填写我的表单,该表单将生成一个随机数并在指定的表单字段中显示该值。然后我会按预期完成表格。以下是一个示例:Codepen

我是否必须在服务器端或使用JavaScript执行此操作?我正在使用Python,特别是Flask。如果您有任何疑问或认为这是愚蠢的,请告诉我。谢谢。我很缺乏经验。

1 个答案:

答案 0 :(得分:0)

随机5位数字可以导致重复使用相同的id两次(小数字空间)

您可以执行以下解决方案之一:

  1. 使用更大的ID空间,您可以使用看起来像12345678-1234-5678-1234-567812345678的标准uuid。您可以查看如何使用它How to create a GUID/UUID in Python

  2. 您可以按特定顺序提供ID,例如< last_given_id>每次+1,这保证您不会重复使用ID,直到达到最大值。

  3. 你也可以使用@Satish Sharma建议,每次检查id是否已经在数据库中。但是,我不认为这是一个很好的解决方案。在我看来,每次插入都是不必要的大开销。