2

我在处理两个不同的企业应用程序时感觉卡住了。

从第一个应用程序 A1 和第二个应用程序 A2 开始,我们曾经将一些文档发送给我们的打印供应商,后者会为我们打印这些文件。

但是每个文档(发送给打印供应商)的文档 ID 是数据库 primaryKey ID 。

例如:应用程序 A1:
表名= FILE_RECORDS

身份证 | 文件名

102 file1.txt
103 file2.txt
104 file3.txt

应用程序 A2
表名= FILE_RECORDS

身份证 | 文件名

104 file5.txt
105 file6.txt
106 file7.txt

现在,如果来自第一个数据库的 file3.txt 和来自第二个数据库的 file5.txt 将发送到打印供应商的同一个 FTP 保管箱,那么它会造成混乱。因为两者都有相同的文档 ID = 104 。

打印供应商希望每个文档都有唯一的 ID。

我们怎样才能克服这个问题?

4

1 回答 1

2

使用唯一的应用程序 ID 在唯一键前面添加唯一的密钥。

A1_102 file1.txt
A1_103 file2.txt
A1_104 file3.txt 

A2_104 file5.txt
A2_105 file6.txt
A2_106 file7.txt 

每个应用程序都会生成一个唯一的文档 ID 流。DB 只会生成数字部分,但您可以在 SQL 语句中添加应用程序 ID:

SELECT Concat('A1_',file_num), filename FROM files;

您可以通过让一个应用程序以一个非常高的数字(例如 2,000,000,000)启动来在数字上做同样的事情。第三种选择是让一个应用程序产生偶数(乘以 2)和其他奇数(乘以 2 并加 1)。

于 2013-05-17T06:16:05.177 回答