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

标签 javascript python database flask flask-sqlalchemy

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

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

我最初的计划是在填写表单时单击一个按钮,该按钮将生成一个随机数并在指定的表单字段中显示该值。然后我会按预期完成表格。这是一个例子:Codepen

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

最佳答案

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

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

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

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

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

关于javascript - 是否可以为我的 sqlite 数据库生成一个随机且唯一的 5 位数 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21155381/

相关文章:

python - 如何测试 Django 电子邮件的内容?

database - 如何说服某人规范化数据库?

database - 启动具有许多交互的社交应用程序时要避免的代码和服务器陷阱?

MySQL基于ID更新慢(15万条记录)

javascript - ASP.NET Core 2.1 MVC 使用 XMLHttpRequest 将数据从 JavaScript 发送到 Action 方法

javascript - 如何在光标处添加字符?

javascript - 在 Ember 2.10 中清除表单字段

javascript - 如何在每个 ajax 请求上调用特定函数

python - 无法使用python存储子进程的终端输出

python - (py)zmq/PUB : Is it possible to call connect() then send() immediately and do not lose the message?