Database design 数据库中是否应使用子类型/超类型?
我有一个博客、文章、个人资料的评论表。评论表可以是超类型,评论、博客、评论、文章、评论、个人资料可以是子类型Database design 数据库中是否应使用子类型/超类型?,database-design,relational-database,Database Design,Relational Database,我有一个博客、文章、个人资料的评论表。评论表可以是超类型,评论、博客、评论、文章、评论、个人资料可以是子类型 由于超类型/子类型是面向对象的设计,所以应该在数据库设计中使用它还是应该有3个不同的表?这取决于详细信息。每种方法都有各自的理由。基本上,表之间共享的数据越多,就越有必要“规范化”数据并使用您所说的“超类型/子类型”。请注意,如果采用这种方法,您的sql可能会变得非常复杂,您必须跨表连接 另一种选择是有一个表,并使用简单的列(如“comment_type”)来区分它是博客、文章还是个人资
由于超类型/子类型是面向对象的设计,所以应该在数据库设计中使用它还是应该有3个不同的表?这取决于详细信息。每种方法都有各自的理由。基本上,表之间共享的数据越多,就越有必要“规范化”数据并使用您所说的“超类型/子类型”。请注意,如果采用这种方法,您的sql可能会变得非常复杂,您必须跨表连接
另一种选择是有一个表,并使用简单的列(如“comment_type”)来区分它是博客、文章还是个人资料。这种方法的sql也非常简单,它只是一个
注释类型='whatever'
。确保为“注释类型”列编制索引。如果表中的列差别很大,这种方法就没有什么意义了。同意。我想补充一点,这取决于您将使用多少通用代码来访问和修改这些不同类型的注释。如果您的代码使用的是超类型/子类型类,那么您的数据存储更有可能受益于类似的结构。