Database design 关系数据库设计

Database design 关系数据库设计,database-design,rdbms,modeling,Database Design,Rdbms,Modeling,我有下列表格 CUSTOMER (cust_id (PK), name, phone) ADDRESS (add_id (PK), address, area) CUSTOMER_ADDRESS (cust_id, add_id) (composite PK) (Junction Table) 上述模型允许一个客户拥有多个地址,一个地址拥有多个客户(多对多)(同一家族的成员) 我希望在我的模型中实现以下目标: 我希望客户可以有多个电话号码。为此,我可以创建另一个表,并将cus

我有下列表格

   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”)。电话号码是系统中的第一条信息。然后进行检查,如果数据库中已经存在编号,我们将获取客户信息(地址、姓名等)并接受他的订单。如果没有客户id与之关联,则检查地址,如果地址已存在,则应将该号码插入“电话”表中,并提供相应的“客户id”参考

如何将数据添加到数据库中。需要检查的两个条件是:

  • 客户表中不应存在引用该编号的客户id
  • 地址表中不应存在该地址。如果地址存在,那么必须有一个与之相关的客户id,在本例中,我们在客户id中添加第二个电话号码

  • 我希望你能理解这个问题。谢谢。

    嗯,你的两种情况都会给你带来麻烦

    如果新客户(新客户id)居住在同一地址,与现有客户共享同一电话号码(想想陆地线路),该怎么办?你真的想因为糟糕的商业/诚信规则而失去该客户吗

    如果一个客户(或许多客户)正在使用业务地址,情况如何?
    他们可能共享一个地址和电话号码。可能有也可能没有不同的扩展名。或者他们是否都使用相同的应付账款办公室地址/电话号码?如果我要订些东西运到我朋友家,怎么样

    多年前,当我们只有陆地电话线时,电话号码可能已经能够与地址关联,但移动电话已经改变了这种动态

    您最好放弃将电话号码与地址关联的想法,只需将电话号码与客户关联即可。
    这将简化你的生活

    您应该检查电话或地址是否已经存在。 您需要定义有关如何处理“重复”的业务规则。但请记住,这些重复可能是因为室友、最近的一次搬家、一个新的电话帐户以及可能的许多其他原因


    你还应该研究地址类型和电话类型的概念

    这是一个食物订购系统,所以如果很多人使用同一个固定电话,那么它就完全可以了。我只需要与号码关联的地址。只要地址相同,谁下单并不重要。如果地址不同,那么客户可以有许多地址。问题是,如何使客户拥有许多数字,并在数字输入时动态生成列。