2012-01-02 148 views
1

我有以下表格:如果在实践中不使用ER映射关系映射关系?

______________   ___________  ___________ 
Persons  |  Enquiries |  Products | 
______________|  ___________|  ___________| 
PersonID  |  EnID  |  ProductID | 
FirstName  |  EnDate  |  Product | 
LastName  |  Enquiry |  Price  | 
Email   |  ___________|  ___________| 
Etc.   | 
______________| 

我打算做一个1:个人和查询之间N的关系。咨询和产品之间也存在明确的M:N关系。但是,商业人士不需要记录询问是否与特定产品有关。

我的问题: 从逻辑设计的角度来看,即使我不打算使用它,我是否仍然需要在ER图上记录关系并在RDMBS中实现它?

非常感谢, 咱

回答

1

根据我的经验,如果你甚至问这个问题,那么你需要制作表格。

从您的问题的声音,你有感觉可能有用于映射EnquiriesProducts之间的统计数据,现在或将来。

多到多个表,以这种方式实现时:

 Product-Enquiries 
============================= 
P_ID-E_ID PK, int, AUTO_INCR 
P_ID  FK, int 
E_ID  FK, int 

是非常小的表,时间不超过五分钟设置,并且可以用很少的后果不容忽视。然而,当它进入某人的脑海时,“嘿,我们应该能够分辨出人们询问哪些产品”,创建这些类型表的行为以及将DML实现到应用程序逻辑中变成一件痛苦。

此外,您只需编写您的SELECT即可获得关于系统中可用主题的完整信息列表,而不必等到表格中的记录聚集才能回答问题。

1

我想你可以切出的关系,如果你知道它永远不会被使用。这将使设计更简单,更易于管理。或者你可以将两个实体合并到查询中。

1

创建表之间的关系仅用于目的。如果您是开发人员,并且您不会开发使用产品和查询表之间关系的东西,那么为什么要创建它。

RDBMS不会促进或限制关系的创建。如果需要,创建它们,否则留下它们。