【问题标题】:Auto increment number in angular [closed]角度自动增量数[关闭]
【发布时间】:2020-04-18 22:43:18
【问题描述】:

我的问题是我想为我的采购订单生成一个自动增量编号,以便为每个采购订单创建,例如,

PO_000001 , PO_000002 ...等

请告诉我如何以上述方式生成我的自动增量编号,

谢谢

【问题讨论】:

  • 理想的解决方案是在后端进行,因为 PO 的 ID 生成是 DB 需要处理的事情。
  • 我使用 db 作为 mongodb,
  • 使用str.padStart(targetLength [, padString]),点击链接stackoverflow.com/a/40717803/9042256

标签: javascript angular typescript


【解决方案1】:

您可以将最新值存储在您的数据库中。例如:1

当您创建新的采购订单时,只需执行 'PO_0000 + (db_value + 1)'

【讨论】:

  • 这里我想我们需要考虑一下。根据问题,这个PO_ 应该是一个字符串。其余的应该是整数。所以我们将不得不做更多的事情。如果db_value 是 100 会发生什么。那么它会给你PO_0000101 对吗?我认为我们应该在PO_0000 中增加零,如果我错了,请告诉我。谢谢
  • 是的,对不起,你说的是正确的@DarshanaPathum。我没注意到
  • 如果你要更新数据库中的采购订单,请将整个东西保存在数据库中。您可以在字段中使用大多数数据库中可用的自动增量功能,并且可以使用相同的功能。
【解决方案2】:

我认为你可以做的首先是在你的表上创建一个自动增量字段。因此,当我们需要添加您的 purchase_ID 时,您可以获得该自动增量字段的最大值。喜欢

SELECT field_name FROM table ORDER BY id DESC LIMIT 1;

使用上面你可以获得表格的最新值。然后使用它你可以让你的purchase_ID 依赖它。

let latest_auto_increment_value = "" + db_value; // make integer to string
let def_val = "0000";
let purchase_ID = 'PO_' + def_val.substring(0, def_val.length - latest_auto_increment_value.length) + latest_auto_increment_value;

【讨论】:

    【解决方案3】:

    一般来说,这种操作对于任何域都是敏感和安全的,它应该像 API 一样存储在后端,或者在你管理时存储在表中。从前端 Angular 开始,您必须管理一个新的采购订单,每个将增加其数量的成功订单都应该从后端管理,就像我们知道主键概念和自动增量概念一样。 供参考。

    CREATE TABLE contacts
    ( contact_id INT(11) NOT NULL AUTO_INCREMENT,
      last_name VARCHAR(30) NOT NULL,
      first_name VARCHAR(25),
      birthday DATE,
      CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
    );
    

    【讨论】:

      猜你喜欢
      • 2014-08-09
      • 2020-11-16
      • 2015-01-21
      • 2023-03-20
      • 2021-12-04
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 2018-09-02
      相关资源
      最近更新 更多