我有以下表格
CUSTOMER (cust_id (PK), name, phone)
ADDRESS (add_id (PK), address, area)
CUSTOMER_ADDRESS (cust_id, add_id) (composite PK) (Junction Table)
上述模型使一个客户拥有许多地址和一个地址,以拥有许多客户(多对多)(同一家族的成员)。
我想在我的模型中实现以下目标:
我希望客户可能有多个电话号码。为此,我可以创建另一个表,并在该表中将cust_id作为FK,但地址也与新表有关(让我们说" PHONE")。电话号码是系统中的第一条信息。然后检查,如果没有。已经存在于数据库中,我们拿起客户信息(地址,姓名等)并接受他的订单。如果没有与cust_id相关联,则检查地址,如果地址已经存在,那么该号码应插入" PHONE"适当的表' cust_id'参考
如何将数据添加到数据库中。需要检查的两个条件是:
我希望你能理解这个问题。感谢。
答案 0 :(得分:-1)
恕我直言,你的两个条件都会给你带来麻烦。
如果新客户(新cust_id)位于同一地址,与现有客户共享相同的电话号码(想想固定电话),该怎么办?您是否真的希望因业务/诚信规则不当而失去该客户?
如果客户(或许多客户)使用公司地址怎么样? 他们都可能共享一个地址和一个电话号码。可能有也可能没有不同的扩展名。或者,如果他们都使用相同的应付帐款办公地址/电话号码?如果我订购的东西要送到我的朋友家怎么样?
几年前,当我们只有地面线路时,电话号码可能已经与地址相关联,但手机已经改变了这种动态。
最好不要删除与地址相关联的电话号码,只需将电话号码与客户关联即可。 这将简化你的生活。
您应该检查手机或地址是否已经存在。 您需要定义有关如何处理“重复”的业务规则。但请记住,这些重复可能是因为室友,最近的举动,新的电话帐户以及其他许多原因。
您还应该研究address_type和phone_type的想法。