2

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

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

  • XML
  • 电子邮件
  • 邮政

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

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

或者,它以哪种方式完成并不重要?

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

谢谢!

4

1 回答 1

1

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

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

您添加三个附加表的方式是 IMO 也是一种可接受的解决方案。

可能性是无止境 :)

于 2012-09-18T14:13:33.083 回答