小编Zac*_*ber的帖子

根据不同表中的相关数据约束数据。这应该在数据库级别还是应用程序级别完成?

我正在开发一个数据库,其中包含我们的客户信息以及有关我们供应商的信息。其中一部分包括将我们的客户与我们的供应商匹配、这些供应商为我们的客户提供给我们的帐号以及我们向客户收取使用这些供应商服务的费用。

背景

在我现在处理的情况下,我有一个表格,其中包含我们客户的帐号、供应商 ID 和该供应商分配给我们客户的帐号。

我还有一个表格,其中包含我们所有供应商的信息和一个相关表格,其中列出了他们的所有服务以及该服务的“基本成本”。

问题

我遇到的问题是将客户与供应商的服务相关联。

如果我只是创建一个表,其中包含我们客户的帐号、供应商的服务 ID 和该服务的成本,那么我可能会遇到不提供该服务的供应商将服务分配给客户的问题。

这是我正在谈论的内容的图表(尽管很粗糙):

图表

因为 VendorServices 和 CustomerVendorServices 之间没有“检查”,所以我可能会在 CustomerVendorServices 表中 VendorServiceID 的位置插入一条记录,用于供应商不提供的服务。

这显然是一个问题,我可以通过与该数据库交互的应用程序的接口来防止它发生,但是如果有一种方法可以让数据库“检查”VendorServiceID 被插入到CustomerVendorServices 表匹配由与 VendorAccountsID/VendorAccountNumber 关联的供应商提供的服务。

我确信这不会令人困惑,如果有人试图理解它,老实说我会感到惊讶,但我想我会试一试。:)

任何帮助和/或建议将不胜感激。

database-design referential-integrity data-integrity relations

5
推荐指数
1
解决办法
79
查看次数