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