English 中文(简体)
如何向用户解释umb本主要钥匙的优势?
原标题:How to explain to users the advantages of dumb primary key?

主要吸引力

我有一刀切(和用户),希望主要钥匙是精密/智能/吸引力控制编号(如社会保障号码或信用卡编号格式)

我只给主要钥匙(在意见中)增添了零点,以证明其希望使控制数目变得复杂、聪明和具有吸引力。 但是,他们希望成为:头2位数是客户代码,然后是年数4位数,然后是年某一年该客户的4位数,然后将客户的交易数目重新定为明年的1位。 每个客户的交易始于1。 e.g. WM20090001, WM20090002, BB2009001, WM20100001, BB20100001

但是,由于我想尽量简单地做事,我原想把建议的smartness放在主要钥匙中,而我却不顾客户和年份,保持了主要的汽车修缮。 但是,为了使其不失灵(实际上,这是把主要钥匙作为智能控制号码的压倒),我把主要钥匙放在了他们身上,从头来看,我把客户代码和四位数字年代码放在八零零零的加固钥匙的前线,即WM200900001。 Sort of slug- similar 关于自动加固的主要钥匙的信息。

不管是否有任何其他信息,我们都能够保持潜在的副作用,当它们篡改记录时,例如,如果它们错误地将交易列入WM的交易,那么,如果我们使用聪明的主干,客户代码就会被带往B,WM客户的主要钥匙就会在控制人数上出现缺口。 更糟糕的是,用户将要求,这些差距的随后记录应转移到这些差距上,随后的记录主要要重新调整(决定)。

  • How do you deal with these user requests(reasonable or otherwise)?
  • Do you yield to their request?
  • Or just continue using dumb primary key and explain them the repercussions of having a very smart/sophisticated primary key and educate them the significant advantages of having a dumb primary key?

P.S.

引书(:

"If you hold your tongue the first time users ask what is for them a reasonable request, things will work a lot better in the end."

最佳回答
问题回答

我稍微表示赞同。 你们必须满足人们的感觉需要。 在可能时,我解释说,保留或理解数据记录是一种子宫前的需要,人们应当信任机器和系统......不是这样说的,而是你们的想法。 但是,我常常只给我头脑,给他们他们认为需要的东西——但不是他们想象的桌子钥匙<>。 but at a query level.

事实上,我最好的数据库工作——我目前的工作——来到我,主要是因为我前面的口号没有获得。 他将与管理人员无休无止地争辩,不要再提供任何东西。 我必须做的是“不是这样”的承诺。

海事组织的终端用户不需要了解不同类型主要钥匙的优势/劣势。

数据库内数据的确切设计和执行应被视为终端用户的黑箱。 底线是,这一黑箱的输出是以正确的格式得出的数据:用户应当不需要或必须知道所涉特定领域是实际的PK还是由它产生的。

根据爱因斯坦,一切工作都应尽可能简单,但不应简单。 简便有时是持证人的眼光。 如果用户认为聪明钥匙比 key钥匙简单,那么你将很好地做到在意见中统一。

通过继续使用基表中的umb子钥匙,你避免了在使用智能钥匙时最终出现的一些陷阱。

知识是力量。 数据也是如此。 当数据共享时,权力共享。 当权力共享时,政治就发生了。 外交是这项工作的一部分。





相关问题
How to model a many-to-many relationship in App Engine?

I have a question regarding how to model a many-to-many relationship in App Engine: A Blogentry can have many tags, a tag can apply to many blog entries. I see a couple of scenarios: Use a Set of ...

How to emulate tagged union in a database?

What is the best way to emulate Tagged union in databases? I m talking about something like this: create table t1 { vehicle_id INTEGER NOT NULL REFERENCES car(id) OR motor(id) -- not valid ... } ...

Users asking for denormalized database

I am in the early stages of developing a database-driven system and the largest part of the system revolves around an inheritance type of relationship. There is a parent entity with about 10 columns ...

How to best implement a 1:1 relationship in a RDBMS?

Yesterday while working on a project I came up on a peculiar 1:1 relationship which left me wondering - how to best implement this (clearly, we had done it wrong :D) The idea is that there are two ...

Automatic filling entity properties

I have some type an architect(?) question I develop an application, based on Spring and Hibernate (annotated configuration) For each table in my database I added 4 fields: createdBy and modifiedBy(...