gpt4 book ai didi

数据库设计 - 规范化

转载 作者:搜寻专家 更新时间:2023-10-30 20:42:48 29 4
gpt4 key购买 nike

这对我来说是一个新话题,我已经阅读了几篇文章,但我仍然不清楚,甚至不确定以下问题是否与这篇文章的标题有关。

我的系统向用户发送数据。用户可以选择通过以下方式发送数据:

  • XML
  • 电子邮件
  • 发布

根据用户的选择,需要几个额外但不同的变量。例如,电子邮件地址是通过电子邮件发送数据所必需的,但不是通过 XML 发送的。

假设我们有一个存储“数据传递选择”(XML、电子邮件或邮政)的数据库表,最好将额外需要的变量存储在此表中,这意味着如果选择了 XML,则电子邮件字段将为空在那一行中,或者制作三个新表来存储与“数据传递选择”表中每个可能选择相关联的变量,然后通过“数据传递选择”PK 关联这些表中的条目会更好吗?

或者以何种方式完成并不重要?

出于问题的目的,请忘记我可能已经在别处持有用户电子邮件地址等的事实。

谢谢!

最佳答案

一些 RDBMS ( PostgreSQL for example ),允许表继承。因此,您可以定义 DataDeliveryChoices,然后创建 3 个继承自它的附加表 DataDeliveryXMLDataDeliveryEmail、...

MSSQL 允许您在列中存储(和查询)XML 文档,因此您可以将附加数据存储在 XML 中(不是经典的数据库设计,但如果您需要添加一些数据字段,则非常灵活,无需更改架构).

您添加三个额外表格的方式在 IMO 也是一个可接受的解决方案。

可能性是无限的:)

关于数据库设计 - 规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478579/

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