我应该发出一个包含可变内容的盒子,并在数据库中跟踪此信息。尽管每个项目类型具有相同长度的序列号(即PK是相同的数据类型),但我的所有项目(一个框的内容)都是不同的类型并且需要不同的表来跟踪它们各自的信息片段。我有一个Boxes表。多对多但源自多个表
所以每个项目都有一个表格(~7个表格)加上表格。我想创建一个BoxContents
表。我试图制作一个多列关系的中间表,两列:一列用于BoxID
,一列用于ItemBarcode
,其中BoxID
是表中PK的FK,而ItemBarcode
是FK给每个PK上的PK项目表(即我试图链接多个表到同一列)。毫不奇怪,这没有奏效。我尝试插入一个项目,并且除了其中一个ItemBarcode
关系外,FK约束被违反。
如何构建我的关系以将多种类型的项目链接到一个表格中的一个表格?这是否合乎逻辑?你需要更多信息?
由于我之前没有使用过触发器,我怎么知道要检查哪张表来验证插入的条形码是否出现在正确的表格中?每个条目的条形码都有自己的前缀我想我有一些switch语句可以解析一部分条形码然后重定向到另一个存储过程? – Brad 2012-03-21 14:07:30
哦!我想我明白了!当我想在插入单个项目表的同时插入到汇总表中时,我不会添加到“汇总项目”中(即填充boxcontents表格) !然后这些条目总是正确的。 – Brad 2012-03-21 14:10:18
@Brad - 当您将一个项目添加到一个框中时,您只关心该项目的条形码在所有项目条形码的“联合”中。制作一个提供'union'的'view'可以简化事情。触发器可以强制执行_deferential_ integrity,也就是您自己的奇数版本的参照完整性,这样数据就不会被破坏。 (* - 挑战感兴趣的读者。) – HABO 2012-03-21 15:19:40