是否可以添加一个数据库约束来限制一行在两列之一中具有单个值,永远不会更多也不会更少?让我举例说明:
Sales Order Table
---------------------------------
id | person_id | company_id |
行将如下所示:
id | person_id | company_id |
---|-----------|------------|
1 | 1 | null |
2 | 2 | null |
3 | null | 1 |
4 | null | 2 |
在此图中,销售订单的来源是个人或公司。这是一个或另一个,没有更多或更少。我的问题是:有没有办法约束数据库,以便 1)两个字段都不能为空,2)两个字段都不能为空?即,一个必须为空,一个必须为非空...
我知道有些人的最初反应可能是将两张表(个人、公司)合并到一张客户表中。但是,我给出的例子只是一个非常简单的例子。在我的应用程序中,我正在使用的两个字段不能合并为一个。
我正在使用的 DBMS 是 MySQL。
我希望这个问题是有道理的。预先感谢您的帮助!