0

使用 Postgres 和/或 Mysql(最新),我在表中有一个列,它是一个唯一键,是一个 char 列,包括例如。日期(8),分支(6),收银员(6),操作员(6),序列(6),冲销(1)。这些都是数值。我这样做是因为我认为 Inserts 比使用这些字段的单独列创建复合唯一键更有效。

我的主要问题是是否可以将一种伪列定义为 substring() 以允许仅使用列名进行选择来定义例如。“操作员”?

另一种方法是在 select 语句中使用 substring() ,这对于临时查询来说有点麻烦。

如果复合唯一键同样有效(对于插入),我可以使用它。

该表的容量非常大,但仅适用于插入和选择。选择将主要在主键上,主键由帐号 (int) 和交易号 (int) 组成。

4

1 回答 1

1

{branch, cashier, operator} 三元组看起来很可疑,可能违反 BCNF 。出于性能原因,我认为您应该首先对数据模型进行规范化,然后再对其进行非规范化。

{date, branch, sequence} 对我来说看起来像是一个自然的 PK(不过,三分之二是保留字)

发布为答案(对不起,我还不能评论)

于 2013-04-22T10:18:54.727 回答