使用条件约束或规范化表?

问题描述 投票:0回答:1

我有两个实体:

A
B
。后者有
B1
B2
两种类型。他们的关系是:

  1. (A,B1)
    (1:1)

  2. (A,B2)
    (1,N)

在创建数据库表的时候,我想知道如何保证一致性最好。我可以看到两个选项:(1) 创建一个表并使用条件约束,根据

B
类型交换一致性策略,或 (2) 创建两个表,每个
B
类型一个,并设置每个表单独的一致性策略。


关于桌子使用的说明:

  • RMDBS 是 PostgreSQL;
  • read
    操作比
    write
    操作大得多;
  • write
    B2
    操作比
    write
    B1
    操作大得多。
sql database postgresql database-design
1个回答
0
投票

一般来说,最好进行标准化,除非有充分的理由不这样做(例如性能问题)。

如果 B1 和 B2 必须共享唯一的 ID 序列(b_id),则只能在单个表中完成: B. 如果它们可以具有单独的 ID 序列(b1_id,b2_id),则创建单独的表可能会更容易:B1、B2。

© www.soinside.com 2019 - 2024. All rights reserved.