【问题标题】:Mysql table structure, a better solutionmysql表结构,更好的解决方案
【发布时间】:2018-04-28 18:58:35
【问题描述】:

想知道是否有人可以帮助我。我有 2 个表格、联系人和潜在客户 - 用户从一个表单将新潜在客户插入这些表格(潜在客户 + 联系人由 contactID 连接),尽管需要额外编码以将数据插入 2 个表格并在之前将联系人 ID 创建到潜在客户表中,但效果很好插入。

将这 2 个表格合并为 1 个表格是否更好,以便未来将潜在客户和联系信息存储在 1 个表格中,减少编码我不知道为什么这么多示例表明这是一个更好的解决方案?

我担心 GDPR 规则非常接近,我们需要设置联系人删除日期和潜在客户删除日期,这将始终不同?

希望这是有道理的

【问题讨论】:

  • 您可以发布您的表格架构吗?另外,我建议使用代表不同数据的单独表格。
  • 我认为联系人总是一个人。领导总是公司吗?每个潜在客户从不有多个联系人吗? (每家公司只能有一个联系人的限制似乎很奇怪。)
  • 联系人始终是一个人,线索是潜在产品销售的实际细节(单个)。每个联系人最多可以有 10 个潜在客户

标签: mysql database-normalization


【解决方案1】:

两个表被认为更好,因为当您需要每个 lead 行包含任意数量的 contact 行(从零到数千)时,它们提供了一个干净、规范化的数据模型。有无数关于规范化的教程。 Here is just one.

如果现在和一直以来每个lead 都恰好有一个contact,那么您当然可以使用一张表。

如果您需要为潜在客户和联系人提供不同的隐私清除日期,您应该在每个表中放置一个时间戳列。然后你可以每天晚上做这样的事情

   UPDATE contact 
      SET givenname='-purged-',
          surname='-purged-',
          addr='-purged-',
          phone='-purged-'
    WHERE input_date <= CURDATE() - INTERVAL 3 MONTH

您的个人身份信息将消失。 (您也可以删除行,但如果您确实先考虑外键约束情况。)

如果您对 contactlead 有不同的清除规则,则两个表结构可以使清除变得容易。

(请注意,您没有告诉我们您的表定义或确切的清除规则,所以这里的代码是基于我的猜测,这肯定是错误的。)

【讨论】:

  • 非常感谢您的出色回答,一个联系人最多可以有 10 个独特的潜在客户,所以我猜答案是目前的 2 个表格。目前这些表是通过contactID链接的,所以每个联系人可以有几个潜在客户,我稍后会通过这些潜在客户来显示联系人的所有潜在客户。 Msany 再次感谢。也许我会坚持使用 2 并创建额外的代码以从单个表单插入/更新/编辑..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
相关资源
最近更新 更多