【问题标题】:storing/generating barcode string in database (mysql)在数据库中存储/生成条形码字符串(mysql)
【发布时间】:2011-03-04 12:32:43
【问题描述】:

我从未使用过条形码,现在我必须设计一个支持条形码的整个应用程序。我想知道我可以使用什么类型的条形码,我怎样才能确保条形码字符串是唯一的,以及我如何将它存储在 MySQL 中。

我正在考虑生成一些条形码字符串并将它们打印到贴纸上,以便我的客户可以使用它们。我正在考虑在 php/mysql 中生成部分,然后准备打印(以 pdf 格式呈现)。假设我生成了 100 个字符串并将它们存储到数据库中,下次我想生成另外 200 个必须是唯一的。

我什至不知道从哪里开始字符串。我可以在条形码字符串中存储哪些信息?

我可以这样做吗:XXX-ZZZZZ-YYYY-autincrementID?

其中 XXX 是国家 ID,ZZZZZ 是客户 ID,YYYY 是条形码字符串 ID。我应该使用代理键作为主键还是应该将它们拆分到多个表中?

我有没有提到每个客户端的所有 autoincrementID 都应该从 1 开始 :) 我对这一切感到很困惑。

谢谢

【问题讨论】:

    标签: php mysql database database-design


    【解决方案1】:

    首先确定要使用的条形码格式。

    然后检查那里是否有 PHP 实现(将有大多数 - 如果不是全部 - 条形码格式)。

    一个基本的例子(使用PEAR Image_Barcode)可以在Using barcodes in your web application找到。

    您只需将文本存储在数据库中,并可以使用 Image_Barcode 类生成相应的图像(它支持 Code 39、Code 128、EAN 13、INT 25、PostNet 和 UPCA)。

    我曾经写过一个创建 EAN 13 条码的应用程序,但不记得我使用的是哪个库(如果我能找到源代码,我会在家里检查)。

    【讨论】:

      【解决方案2】:

      我们需要分离一些关注点。

      首先是将任何给定字符串打印为条形码的操作。其他答案谈论如何做到这一点。

      另一个动作与条形码无关,是关于数据库设计的。您的示例表明条形码将是值的组合。但是,我知道更大的应用程序还没有清楚地说明(如果我错了,请纠正我)。因此,您现在为唯一代码创建什么样的“游戏”表并不重要——创建您想要的任何东西。当您知道必须将哪些值打印为条形码时,我们就进入了数据库设计问题。

      【讨论】:

        【解决方案3】:

        条形码只是打印和/或读取字符串的一种方式。涉及到

        1. 特殊字体,
        2. 一些计算(用于校验位)

        您的第一步应该是确定您需要支持的条码。许多制造条形码打印机和阅读器的公司也为此提供了一些帮助。

        我找到了一些很好的帮助here,包括免费字体。这是一个法语网站,但有一些内容是英文的。

        【讨论】:

        • 我在考虑 EAN 128,它似乎是文档归档应用程序的最佳选择
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-18
        • 2012-02-17
        • 2013-03-18
        • 1970-01-01
        • 1970-01-01
        • 2015-04-17
        相关资源
        最近更新 更多