简短:我对数据库还不熟悉,目前有两个表用于检查器类型脚本。有没有办法确保两个表使用相同类型的列?该数据库位于Sybase。
详细信息:第一个表基本上是脚本进行的每次检查的日志(假设一次运行中有106个检查,所以它会[运行次数] x [否]检查< 106>])。第二个表用于最后一次运行,因此在这种情况下,它将包含106行。然而,这不是一个常数,并且可能会增加。
我的问题是,有没有办法强制两个表都有共同的列?我在syscolumns表中看到有很多行专用于每个表,但由于它们是相同的,我可以以某种方式让表从相同的源中拉出它们的“样式”(模式正确)参数,所以任何一方面的变化是另一方面的变化?
谢谢!
答案 0 :(得分:2)
如果您需要具有完全相同列结构的多个表,则规范化表明数据可能都属于单个表。
我知道通过对数据进行非规范化可以获得一些收益,但由于您承认自己是数据库的新手,我会尝试先找到一种规范化的方法。
答案 1 :(得分:1)
管理多列和数据类型之间关系的一种方法是使用用户定义的域。一些DBMS系统支持用户定义的域。其他人不
SQL中的动词是“CREATE DOMAIN”。您可以在文档中查找详细信息。
然后,在创建表并创建组成表的列时,可以使用已创建的域而不是指定数据类型和相关参数。当两列被引用到同一个域时,它们保证具有相同的数据类型。它们也保证具有相同的大小,例如“char(7)”中的“7”。
以真正增强您通过抽象简化数据管理的能力的方式创建域涉及学习和经验。你必须从某个地方开始。
答案 2 :(得分:1)
你描述了一个奇怪的情况。通常,一旦设计并实现了表并且应用程序开始使用它们,它们就不会更改。当然,他们很少在正常业务过程中(即每天,甚至每周)改变。
在什么情况下您认为需要额外的列?如果它是一个反复出现的情况(我已经有一些这样的情况),你会编写一个程序来添加列,这将确保表保持同步。如果要对表进行“手动”更改,这通常由具有管理员级权限的人员完成,并且管理员可以做任何他们(可能错误地)想要做的事情,无论原始设计者的意图如何。这里最好的防御是记录系统要求,并确保任何可能需要更新表的人都知道并且可以使用它们。