【发布时间】:2012-02-23 14:31:35
【问题描述】:
在创建Funds 或Assets 表时,我经常遇到同样的问题:并非所有Assets 都有相同的标识符。
例如:70% 拥有ISIN,有些拥有彭博代码,有些拥有两者,有些只有来自本地会计软件包的AccountingID,等等。
通常我最终会为该表提供一个代理 PK,以及所有可能标识符的不同字段 (Bloomberg, ISIN, AccoutingID,..)
我曾经继承过这样一个数据库,其中开发人员将备用键迁移到子表 [Identifiers],因为他事先并不知道每个可能的备用键。
这个标识符表如下所示:
-
AssetID(代理一号) -
IdentifierType(例如:ISIN) -
IdValue
什么是最好的解决方案?
我认为第一个(单表)是最好的,因为即使我冒着有几个 Null 的风险,ISIN 也是一个 ISIN,并且是 Fund 的明确定义的属性。
【问题讨论】:
标签: database-design