Java 两个表列之间有多个链接…设计方法不好?
你好 我正在开发一个网络应用程序,我正要设计数据库,我遇到了这个问题。 在两个表之间有超过1个链接是一种糟糕的设计吗? 我发布的图片是一个非常快速和小的例子,只是为了让它更清楚。 如果我想显示所有的产品,我想插入与它们相关的产品,在这种情况下,我可以通过创建一个产品实例来检索产品名称,该实例使用产品id从产品对象中的产品id字段检索,但这将需要执行更多的查询和更多的键入工作,因此,我想将产品名称直接包含在报价中,这样我就可以简单地检索所有报价,并最终通过使用产品id浏览DB来显示相关产品。 你会认为这是一个糟糕的方法吗? 我一直在寻找类似我的案例,但我只找到了表之间有1个连接(具有唯一id)的方法Java 两个表列之间有多个链接…设计方法不好?,java,database,database-design,Java,Database,Database Design,你好 我正在开发一个网络应用程序,我正要设计数据库,我遇到了这个问题。 在两个表之间有超过1个链接是一种糟糕的设计吗? 我发布的图片是一个非常快速和小的例子,只是为了让它更清楚。 如果我想显示所有的产品,我想插入与它们相关的产品,在这种情况下,我可以通过创建一个产品实例来检索产品名称,该实例使用产品id从产品对象中的产品id字段检索,但这将需要执行更多的查询和更多的键入工作,因此,我想将产品名称直接包含在报价中,这样我就可以简单地检索所有报价,并最终通过使用产品id浏览DB来显示相关产品。 你会
谢谢这是数据反规范化。不要这样做(在大多数情况下)。正确设计表,让数据库使用正确的查询执行正确的工作。随着时间的推移,它将更易于维护和使用 使用报价表中的ID在产品表中查找产品名称 是的,这很糟糕
删除冗余名称将是正确的规范化。只需在id上链接,这将是最好的方式。一般来说,两个表之间的关系(链接)数量没有限制,但每个关系都应该具有唯一的含义。在您的示例中,如果Product Name和Product ID都是候选键,并且每个名称始终具有相同的ID,那么这些表之间肯定不应该有两个PK/FK关系。@Joe是对的。规范化是数据库设计的最佳方法。原因是可以在一个表中添加、删除和修改字段,然后通过定义的关系传播到数据库的其余部分。您好,Joe,谢谢,您是否可以在offer类中创建一个字段“product name”,仅在请求显示时才使用setter提供?或者您会创建第三个类,其中包含来自这两个对象的信息?@JBoy-您需要停止将数据库实体视为类。规范化规则将使您减少实体(表)之间的冗余。但是,代码中的类可以有任意多的冗余,数据层根据需要从适当的表或表的联接中为每个成员提供内容。