我们有今天早上有关如何将应存储我们的ID为我们制作了一些资产,我们已经在我们的数据库中,descusion产生一点点热量,所以我决定来咨询的SO专家会议。为主键使用项目特定的前缀和自动编号?
表结构即我相信,我们应该有(短版)是这样的:
实施例1)
- 由assetid - INT(32) - 主键
- 类型 - 字符串
所以一些示例数据是这样的:
==AssetId======Type===
12345 "Manhole"
155415 "Pit"
等
团队的另一名成员建议是这样的:
例2)
- 由assetid - 字符串 - 主键
- 类型 - 字符串
所以一些示例性数据是这样的:
==AssetId======Type===
"MH12345" "Manhole"
"P155415" "Pit"
,我们做的那种类型的短版本,并将它附加到ID的前面,并将其存储在数据库中。我见过一些资产数据库可以做到这一点,并且从来没有真正采用这种方法。
我从来没有真正喜欢使用字符串为排列原因ID的想法。无论如何,当您已经拥有资产商店类型时,我也觉得它只是为了存储无用的信息。
你会采取什么方法?为什么?使用2号方法1有什么好处?
编辑:是的,我将使用AUTO_INCREMENT的方法1.
似乎有几个答案 - 包括当前接受的答案 - 误解了例2作为自然主键,即包含实际业务数据的键。也许你可以稍微澄清一点,因为示例2中的键似乎只是代理键 - 它们与行的业务数据没有关系 - 但带有额外的表指定前缀。 – 2009-12-18 06:44:08