相关疑难解决方法(0)

我们应该使用序列还是身份作为主键?

我们正在创建一个包含 20 多个表的新数据库,我们的数据库支持:

  • 序列。
  • 标识列(始终生成为标识/序列)。

所以,问题是:我们应该使用序列还是恒等式?哪一个更好?团队似乎在这个问题上存在分歧,所以我想听听优点缺点,以帮助做出决定。

添加数据库详细信息:

  • 我们正在 IBM DB2 上创建新数据库,但我们需要确保它将与未来迁移到 PostgreSQL 的计划兼容。

sql database db2 postgresql primary-key-design

8
推荐指数
1
解决办法
1万
查看次数

复合键的每组行的序列号

我正在尝试维护一个地址历史表:

CREATE TABLE address_history (
    person_id int, 
    sequence int,
    timestamp datetime default current_timestamp,
    address text,
    original_address text,
    previous_address text,
    PRIMARY KEY(person_id, sequence),
    FOREIGN KEY(person_id) REFERENCES people.id
);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种简单的方法可以自动编号/约束sequence,address_history从而自动从1开始计数person_id.

换句话说,第一行person_id = 1会得到sequence = 1; person_id = 1会得到第二排sequence = 2.第一行person_id = 2,将sequence = 1再次获得.等等.
还有更好/内置的方式来维护这样的历史吗?

sql postgresql database-design auto-increment

7
推荐指数
1
解决办法
1913
查看次数