一个简单的权益数据库有 3 个表:股票代码表、兑换表和货币表。股票代码表有两列:一个符号列(例如:IBM)和一个指向交换表中一行的外键。交换表有两列:名称列(例如:NYSE)和货币表中一行的外键。货币表有一列:一个符号(例如:美元)。 (我省略了每个表的主键列)。
如何强制执行相同货币不应出现两次相同股票代码的约束?即,我只想允许一个(IBM + USD)。在 (ticker.symbol + ticker.exchange) 上创建唯一约束是不够的;(IBM + NASDAQ) 如果已经存在 (IBM + NYSE) 则无效。我想我可以创建一个将股票代码表和货币表连接起来的视图,并在 (view.ticker + view.currency) 上创建一个唯一索引;但是,据我现在所知,无法在视图上创建索引。