我有 4 个表或实体:
顾客
物品
接触
交易
我喜欢为每个名为CODE的表设置一个单独的字段。该字段将存储系统为每个表生成的代码。但是这个系统生成的代码必须由最终用户定制。最终用户必须有权根据自己的判断自行编写代码。
我怎样才能做到这一点?有什么线索吗?
我有 4 个表或实体:
顾客
物品
接触
交易
我喜欢为每个名为CODE的表设置一个单独的字段。该字段将存储系统为每个表生成的代码。但是这个系统生成的代码必须由最终用户定制。最终用户必须有权根据自己的判断自行编写代码。
我怎样才能做到这一点?有什么线索吗?
如果您想要一个用户可分配的 CODE 标识符,请将其添加到您的 ID 主键字段中并分开。
这为您提供了一个可靠的“内部标识符”来构建应用程序,同时保留了业务分配某些“业务标识符”的能力。
加入整数 ID“内部标识符”也比 VARCHAR 更有效,这是您为“业务标识符”提供灵活性所需要的。
create table CUSTOMER (
ID integer not null,
CODE varchar(32),
-- other fields
primary key (ID)
);
老实说,您可能无法为企业决定他们希望如何分配 CODE——因此尝试使用 CODE 作为主键会使您的应用程序无法向表中添加行,因为分配这些的规则太复杂/未知/不可委派,无法在应用程序中编码。
真的,代码应该由企业来决定——而不是让你尝试和猜测,这只会导致你错了。PROD001,PROD002 听起来不错.. 但随后他们将决定为某些不同类别的产品更改系统。您将永远无法正确猜测 PAPERPROD0084/12/a,业务将决定哪个是正确的,因此您将不可避免地最终出错。
此外,这使您可以在业务摸不着头脑并浪费时间弄清楚“业务 ID”系统将如何工作——或改变它的想法时,构建一个真正的应用程序。
最后一个提示:允许 CODE 为空,以便人们稍后填写。最好将其留空而不是不正确。