首页 / 知识
关于sql:数据库继承?
2023-04-11 21:23:00

Inheritance in database?有什么方法可以在数据库中使用继承(特别是在SQL Server 2005中)? 假设我想在所有实体上添加诸如CreatedOn,CreatedBy之类的字段。 我正在寻找一种替代方法,而不是将这些字段添加到每个表中。 在SQL Server 2005中,表之间没有继承之类的东西,并且正如其他人所指出的那样,在创建表时,您可以获得帮助,将必要的列添加到表中,但它不会像您继承那样知道。 可以将其视为源代码文件的模板。 正如GateKiller所提到的,您可以创建一个包含共享数据的表,并使用外键对其进行引用,但是您要么必须具有审核挂钩,触发器,要么手动进行更新。 底线:手工作业。 PostgreSQL具有此功能。只需将其添加到表定义的末尾即可:
子表将具有其父表的所有列,并且对父表的更改将更改子表。同样,子表中的所有内容都将出现在对父表的查询中(默认情况下)。不幸的是,索引不会越过父/子边界,这也意味着您无法确保某些列在父子之间都是唯一的。 据我所知,它不是经常使用的功能。 在O-R映射中,继承映射到父表,其中父表和子表使用相同的标识符 例如
SubObject与Object具有外键关系。创建SubObject行时,必须首先创建一个Object行并在两行中??使用Id Ramesh-我将在我的E-R模型中使用超类型和子类型关系来实现这一点。您还可以通过几种不同的物理方法来实现关系。 您不想使用继承来做到这一点!当表B,C和D继承自表A时,这意味着查询表A将为您提供来自B,C和D的记录。现在考虑... 从a删除; 而不是继承,而是使用LIKE ...
如果使用的是GUID,则可以创建包含GUID,CreatedOn,CreatedBy列的CreateHistory表。为了填充表,您仍然必须为每个表创建一个触发器或在应用程序逻辑中处理它。 我们有一个SProc,可将审计列添加到给定的表中,并(可选)创建历史表和关联的触发器以跟踪对值的更改。不幸的是,公司政策意味着我不能分享,但确实不难实现。 您可以使用数据建模工具,例如ER / Studio或ERWin。两种工具都具有域列,您可以在其中定义可以应用于任何表的列模板。当域更改时,关联的列也会更改。 ER / Studio还具有触发器模板,您可以构建它们并将其应用于任何表。这就是我们如何更新LastUpdatedBy和LastUpdatedDate列,而无需构建和维护数百个触发脚本的方式。 如果确实创建审核表,则使用该审核表的每个表中的每一行都会有一行。可能会变得混乱。我认为,最好将审计列放在每个表中。您可能还需要在所有表中放置一个时间戳列。您永远不知道何时并发成为问题。我们在每个表中放置的数据库审计列是:CreatedDt,LastUpdatedBy,LastUpdatedDt和Timestamp。 希望这可以帮助。 您可以在Management Studio的模板窗格中创建模板。然后,每次要创建新表时都使用该模板。 失败的话,您可以将CreatedOn和CreatedBy字段存储在引用原始表和ID的Audit Trail表中。 如果失败,请手动执行。 |
最新内容
相关内容
python怎么调用类方法
python怎么调用类方法,培训,方法,实例,静态,定义,参数,属性,对象,关键字,以上,python中的类用来描述具有相同的属性和方法的对象的集合。它定python如何操作mysql数据库
python如何操作mysql数据库,培训,标准,项目,密码,数据库,接口,表字,操作,用户,机子,Python标准数据库接口为PythonDB-API,PythonDB-API为开发python判断字符串是否为小数的方法
python判断字符串是否为小数的方法,培训,代码,合法,小数点,小数,整数,字符串,方法,右边,左边,python想判断一个字符串是不是一个合法的小数,但python可以继承父类方法吗
python可以继承父类方法吗,培训,代码,名字,方法,动物,属性,编译器,这样的话,定义,里面,python继承,调用父类属性方法在python里面,继承一个类python可以多继承吗
python可以多继承吗,代码,培训,不了,方法,属性,父亲,孩子,前缀,上边,变量,python面向对象的主要好处就是代码的重用,实现这一特点通过继承,继承python函数的高级使用方法
python函数的高级使用方法,代码,函数,灵活,数据,培训,时间,定义,程序,赋值,变量,Python的函数是“一等公民”,因此函数本身也是一个对象,函数既python私有方法是什么
python私有方法是什么,培训,公开,代码,方法,属性,变量,函数,前面,成员,法名,Python默认的成员函数和成员变量都是公开的,Python私有属性和方法python字符串连接的方法有哪些
python字符串连接的方法有哪些,培训,字符串,基础,方式,两个,变量,函数,空白,语言,功能,python中有很多字符串连接方式,下面总结一下:最原始的字python字符串拼接有哪些方法?
python字符串拼接有哪些方法?,培训,一致,字符串,位置,异常,结果,方式,方法,字符,参数,python拼接字符串一般有以下几种方法:①直接通过(+)操作python创建多线程的两种方法
python创建多线程的两种方法,培训,第一,代码,业务,方法,线程,函数,任务,演示,实例,当我们使用python编程的过程中需要多个输出的任务的话,为了python实例方法的使用注意
python实例方法的使用注意,培训,实例,方法,对象,定义,以上,参数,更多,内容,python实例方法的使用注意1、实例方法是从属于实例对象的方法,定python类方法的注意点
python类方法的注意点,培训,国际,方法,实例,对象,属性,参数,法名,性别,上面,python类方法的注意点1、@classmethod必须在方法上面。2、第一个