数据库设计 – 数据库设计:两个1到多个关系到同一个表
我必需成立一个环境,我有一个表Chequing_Account(个中包括预算,iban号码和帐户的其他具体信息),这些表必需与两个差异的表Person和Corporation相干,这两个表可以有0,1个或很多支票账户. 换句话说,我与统一个表Chequing帐户有两个1对多的相关 我想听听这个题目的办理方案,它们遵守类型化要求. 1)找到Person和Corporation都属于的民众实体,并在此和Chequing_Account表之间建设一个链接表,这在我的环境下是不行能的,纵然它是我想办理一样平常题目而不是这个特定实例. 2)建设两个链接表PersonToChequingAccount和CorporationToChequingAccount,它们将两个实体与Chequing Accounts相干联.可是我不但愿两小我私人拥有沟通的支票账户,并且我不想让一个天然人和公司分享一个支票账户!看到这个图像 3)在Chequing账户中建设两个指向公司和天然人的外键,可是我会逼迫执行一小我私人和一个公司可以拥有很多支票账户可是我必需手动确保每个ChequingAccount行不是两个相关指向公司和天然人,由于一个checquing帐户是公司或天然人.看到这个图像 这个题目尚有其他更洁净的办理方案吗? 办理要领相关数据库不是为美满地处理赏罚这种环境而构建的.您必需抉择什么对您最重要,然后举办衡量.你有几个方针:>保持第三范式 题目是个中一些方针彼此竞争. 子打字办理方案 两个外键办理方案 然而,因为实验互斥束缚的方法,许大都据建模者会以为这种办理方案不如子打字办理方案.在子输入办理方案中,您可以行使键来逼迫实现互斥性.在两个外键办理方案中,您行使CHECK束缚.我知道有些人对搜查限定有不公道的成见.这些人更喜好将束缚保存在密钥中的办理方案. “非类型化”分区属性办理方案 共享主键域办理方案 因此,您可以看到,现实上不行能拥有遵循全部法则的干净计划,同时保持数据检索的简朴性.你必需抉择你的衡量弃取. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |