Ger*_*hez 0 sql firebird foreign-keys
我在软件中使用 Firebird 数据库并发现了一个问题
\n\n我有两张桌子,适合两种不同类型的客户:
\n\nclientM(\n\n rfcM varchar(12) primary key\n\n some other data \n\n)\n\nclientF(\n\n rfcF varchar(13) primary key\n\n some other data\n\n)\nRun Code Online (Sandbox Code Playgroud)\n\n(长度是固定的,因为它是 M\xc3\xa9xico 中我期望用户输入的数据的标准)
\n\n问题来了,我需要创建第三个表:
\n\nclientPayment(\n\n rfcClient varchar(13)\n\n some other data\n\n)\nRun Code Online (Sandbox Code Playgroud)\n\n并且该字段必须有一个引用 clientM.rfcM 和 clientF.rfcF 的外键,因此我可以使用同一个表来存储来自两种类型客户的付款
\n\n我可以让第三个表不带外键,但希望添加一个并避免用户输入不正确的数据
\n在这种情况下,您有两个(推荐)选项:
正如 Impaler 所说,在第三个表上使用两列,一列引用每个表并且可为空(因为理想情况下一列始终为空)
或者您可以在表之间使用层次结构,您将在其中创建一个名为 的表,其中包含和Client之间的所有公共数据,并且您的表将包含每种类型客户端的特定数据,以及引用其父表的/ 。并且您的表将有一列引用父表ClientFClientMClientFClientMClientF.IDClientM.IDclientPaymentClient
| 归档时间: |
|
| 查看次数: |
6237 次 |
| 最近记录: |