gpt4 book ai didi

database-design - 用于存储大量行的表设计

转载 作者:行者123 更新时间:2023-11-29 13:07:30 24 4
gpt4 key购买 nike

我正在尝试在 postgresql 数据库中存储一些唯一标识符以及它们出现在的站点。我无法真正决定选择以下 3 个选项中的哪一个,以便更快和更容易维护。该表必须提供以下信息:

  • 不幸的是它是文本的唯一标识符
  • 出现该唯一标识符的网站

必须保存的数据量相当大:据我所知,大约有 2200 万个唯一标识符。

于是想到了表格的如下设计:

  • id - 整数

    标识符 - 文本

    seen_on_site - 一个整数,站点表的外键

这种方法需要大约 2200 万乘以网站数量。

  • id - 整数

    标识符 - 文本

    seen_on_site_1 - bool 值

    seen_on_site_2 - bool 值

    ......................

    seen_on_site_n - bool 值

希望网站的数量不会超过 10 个。这只需要我所知道的唯一标识符的数量,即大约 2000 万个,但从 ORM 的角度来看,这将很难使用它。

  • 一个只存储唯一标识符的表,例如:

id - 整数

unique_identifier - 文本,

一个只存储站点的表,例如:

id - 整数

网站 - 文本

和多对多关系,例如:

id - 整数,

unique_id - 整数(存储标识符的表)

site_id - 整数(fk 到站点表)

  • 另一种方法是使用一个表来存储每个站点的唯一标识符

那么,从长远来看,哪种方法似乎是更好的选择?

最佳答案

有两个表。
表格1站点ID、站点名称、站点描述
站点 ID -> 主键
站点名称 -> 索引

表 2 就是您正在谈论的那个。
行 ID、站点 ID,任何信息。
行 ID -> 主键
站点 ID -> 表 1 的外键
索引(行 ID、站点 ID)

关于database-design - 用于存储大量行的表设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2801822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com