我有以下表格:
______________ ___________ ___________
Persons | Enquiries | Products |
______________| ___________| ___________|
PersonID | EnID | ProductID |
FirstName | EnDate | Product |
LastName | Enquiry | Price |
Email | ___________| ___________|
Etc. |
______________|
我要在Persons和Enquiries之间建立1:N的关系。查询和产品之间也存在明确的M:N关系。但是,业务人员没有必要记录询盘是否与某一特定产品有关。
我的问题:从逻辑设计的角度来看,我是否仍然需要在ER图上记录关系并在我的RDMBS中实现它,即使我不打算使用它?
很多谢谢,攒
根据我的经验,如果你问这个问题,那么你需要制作表格。
从你的问题听起来,你有一种感觉,在Enquiries
和Products
之间的统计映射可能是有用的,无论是现在还是将来。
以这种方式实现时的多对多表:
Product-Enquiries
=============================
P_ID-E_ID PK, int, AUTO_INCR
P_ID FK, int
E_ID FK, int
是非常小的桌子,花不到五分钟的时间来设置,并且可以忽略不计什么后果。然而,当某些人想到"嘿,我们应该能够知道人们询问的是哪些产品"时,创建这些类型的表以及将DML实现到应用程序逻辑中的行为就变成了一件痛苦的事情。
另外,你所要做的就是写你的SELECT
s来获得关于系统中可用的主题的完整信息列表,而不是等到表中有记录的积累才能回答问题。
我想如果你知道这段关系永远不会被使用,你可以切断这段关系。这将使设计更简单,更易于管理。或者您可以将这两个实体合并到enquiry中。
创建表之间的关系仅用于某些目的。如果您是开发人员,并且您不会开发使用产品和查询表之间关系的东西,那么为什么要创建它呢?
RDBMS不促进或限制关系的创建。如果需要,创建它们,否则就离开它们。