如何添加有关客户端的大量信息

时间:2014-10-30 18:22:24

标签: sql erd

我对SQL很新。我正在为我工​​作的建筑公司设计我的第一个项目数据库。我创建了ERD。他们不会让我插入它,因为我只有5分。 现在,管理层希望添加有关客户的以下信息:

                            ACTIVE CLIENTS
                            - how they found us
                            - time frame for project to start
                            - type/style
                            - why they chose us/contacted us
                            - project refernce
                            - budget
                            - primary or secondary residence
                            - project size
                            PAST CLIENTS
                            - last time contacted
                            - 
                            POTENTIAL CLIENTS
                            - how they found us
                            - time frame for project to start
                            - budget
                            - project size
                            - last contacted/who/when/how
                            LOST CLIENTS
                            - why (see below)
                              - cost/fees
                              - compatability
                              - time frame/availability
                              - no answer
                              - design style/other firm
                              - other

我的问题是: 这些是不同的表,称为ActiveClients,PastClients,PotentialClients和LostClients? 如果没有,它们只是Client表的一部分吗?

如果它们是单独的表,那么它们的主键是否在Client表中显示为外键?

非常感谢。

1 个答案:

答案 0 :(得分:0)

绝对不要将各种客户端类型放在不同的表中 - 如果您必须将客户端从一种状态移动到另一种状态,该怎么办?

有关客户端的详细信息可以放在其他表中:例如,您可以使用表来存储客户端状态和客户端丢失原因,&你可以使用一个带住宅的桌子(一排为主,一排为二级)。

enter image description here

Residence(或Address)是一个包含地址的表格;包含一个clientID和一个标志,说明它是否是主要住所

ClientStatus是一个列表,其中包含ClientStatus(过去,活跃,潜力,失落)& ClientStatusID

ClientLossReason是另一个列表,其中包含ClientLossReason(费用,可比性,时间范围,设计风格,其他,未知)和ClientLossReasonID

Client包含有关客户的核心详细信息(上次联系日期,来源等)。

Project包含有关项目的详细信息,包括ClientID(毕竟,客户端可能有多个..)