CakePHP数据库结构多个关系

时间:2016-02-06 03:39:33

标签: php mysql cakephp

在我的简单系统中,有一个用户表,用户登录和密码以及客户表。

用户可以通过3种不同的方式与客户建立联系。 1)销售代表给客户 2)该客户产生的铅 3)此代表输入的客户帐户

最初我计划将所有客户放在客户桌上: customers.user_id customers.lead_id customers.entered_by_id。

使用CakePHP这是错误的方法吗?应该如何设计? 我是CakePHP新手一天。

1 个答案:

答案 0 :(得分:1)

在不了解您正在构建的内容和您的要求的情况下,我会这样做:

  • users:包含身份验证信息
    • users.role:用于查询特定用户的角色(客户,销售代表,管理员等)
    • users.username
    • users.password
  • sales_representatives:包含销售代表数据
    • sales_representatives.user_id:将销售代表数据链接到特定用户
  • customers:包含客户数据
    • customers.user_id:将用户链接到特定用户(假设您希望他们登录,如果不是,则可以跳过此处)
    • customers.sales_representative_id:将客户链接到销售代表。您可能希望在单独的表中存储特定客户的销售代表历史记录,但此字段只是当前的销售代表。
    • customers.lead_id:指向此客户来自的特定潜在客户的链接。如果它是入站而不是潜在客户,则可以为null,但可能会链接到有用的内容。
  • leads:包含潜在客户数据
    • leads.sales_representative_id:包含给定潜在客户的当前销售代表。与customers表一样,您可能希望在单独的表中存储给定潜在客户的历史销售代表列表。

如果潜在客户可以登录,您也可以选择将user_id添加到潜在客户表中,但系统可能不是这种情况。

你的entered_by_id是什么?这似乎更像是与潜在客户相关的ID,在这种情况下,您可能希望在潜在客户表中跟踪(与sales_representative_id分开)。

这些东西大部分都不是与CakePHP相关的,尽管良好的架构规划将大大有助于使用CakePHP:)