在我的职业生涯中,我看到了两种不同的设计,即如何在DB中建模业务对象:
现在,我们有了“资源”实体,可以从另一个服务下载该实体。每个资源都包含自然的内容ID
-电子邮件(电子邮件只是一个示例,我们可以想象应该使用的其他情况String
)。我想将其用作数据库中的主要ID。但是我的同事想创建其他属性Long
-id。我不确定,为什么要创建此附加属性。当然,数据库模型更简单,因为所有实体都具有相同的结构,但是我更喜欢使用String
id。
伙计们,您认为哪种模式更好?为什么?
首先,我不确定是否假设电子邮件可以是“资源”的唯一自然ID,因为这意味着对于每个新资源,您都需要创建一个新电子邮件,并且资源无法读取电子邮件,但是我知道案例,所以可能是正确的。
因此,问题来了:
影响
在您的情况下,除了使用该字符串ID与该服务进行通信之外,您别无选择(?),因此至少也必须具有此选项。
因此,现在我个人的观点是:我认为,作为开发人员,您的工作量更少,数字ID的问题也更少,尽管调试起来有些困难。作为数据库管理员,如果只有一列,则它是String还是Long都没有关系,因为它不会使连接复杂化。只要字符串是不可变的,例如永不更改,就可以了。如果它可以更改,那么肯定会给您带来很多管理员的麻烦(而愚蠢的开发人员不会在乎^^)。如果它可能随时间变化,请使用数字ID。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句