我对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表中显示为外键?
非常感谢。
答案 0 :(得分:0)
绝对不要将各种客户端类型放在不同的表中 - 如果您必须将客户端从一种状态移动到另一种状态,该怎么办?
有关客户端的详细信息可以放在其他表中:例如,您可以使用表来存储客户端状态和客户端丢失原因,&你可以使用一个带住宅的桌子(一排为主,一排为二级)。
Residence
(或Address
)是一个包含地址的表格;包含一个clientID和一个标志,说明它是否是主要住所
ClientStatus
是一个列表,其中包含ClientStatus
(过去,活跃,潜力,失落)& ClientStatusID
ClientLossReason
是另一个列表,其中包含ClientLossReason
(费用,可比性,时间范围,设计风格,其他,未知)和ClientLossReasonID
Client
包含有关客户的核心详细信息(上次联系日期,来源等)。
Project
包含有关项目的详细信息,包括ClientID(毕竟,客户端可能有多个..)
等