【问题标题】:Warehouse management Application - Autoincrement letters for primary key.仓库管理应用程序 - 主键的自动增量字母。
【发布时间】:2012-01-26 10:17:52
【问题描述】:

是否可以在 MySql 中本地自动递增字母?如果不能,您能否根据下面我的应用程序描述提出建议和替代方案?

背景:

我正在构建一个仓库管理应用程序。为了在仓​​库中找到物品,我想我会用 a,b,c,...aa,ab,ac... 编号货架列 1,2,3.. 和货架行。 要在架子中定位特定单元格,您将获得两者的组合,例如,小部件位于“4d”。 为此,我将有一个带有自动递增主键的 ShelfColumn 表和一个带有自动递增字母的 ShelfRow 表。一个关联表将把两者连接起来,形成独特的货架尊敬来定位我的货物。

【问题讨论】:

    标签: php mysql auto-increment


    【解决方案1】:

    不,您不能自动增加字母,也不需要这样做。

    关于 MySQL 中 auto_increment PK 的小故事:从这个意义上说,它很特别,你永远不应该依赖它的行为。 InnoDB 也使用它来确定如何将数据物理保存到硬盘。

    因此,最好让 auto_increment 递增数字,而不干扰并尝试向其添加字母。

    另一方面,用字母标记货架行的需要是什么?我认为没有理由不按数字标记它。你会从中得到一个很好的矩阵,任何人都会立即知道第 10 列第 25 行是什么以及如何找到它。

    【讨论】:

    • 您通常还需要知道实际的“过道”,在我工作过的地方,这些总是用字母来标识,但正如你所说,没有理由你不能这样做@ 987654321@
    • 我想我可以只使用数字。只是字母使人们更容易使用该系统。他们明白字母是用来表示过道的,因此混淆较少。是否有人对如何对仓库中的位置进行分类有任何建议,请记住,与许多仓库一样,它不仅仅是具有统一尺寸区域的干净货架。还有一些阁楼和抽屉等。
    【解决方案2】:

    我认为自动增量不会支持这种功能。毕竟它必须知道每种语言和每个字符集才能知道要自动递增到什么,以及当它到达给定字母表中的最后一个字符时应该做什么,别管非字符符号做什么(标点符号、空格、控制代码等)。

    您要么必须在应用程序逻辑中实现字母选择,要么对行使用数值并将它们转换为输出时的字母(a 代表 1,b 代表 2,aa 代表 27,ab 代表 28 等)。

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 2023-03-04
      • 1970-01-01
      • 2020-01-29
      • 2018-06-05
      相关资源
      最近更新 更多