AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 5825
Accepted
Levu WebWorks
Levu WebWorks
Asked: 2011-09-16 16:13:18 +0800 CST2011-09-16 16:13:18 +0800 CST 2011-09-16 16:13:18 +0800 CST

如何设计变量数据的关系?

  • 772

帮我定义多结构数据的表关系。我需要跟踪线索。线索来自多个来源。每个潜在客户来源都有自己的数据结构。我需要在关系数据库中表示这一点的建议。

表“产品销售列表”(定义如下)中的每条记录都有一个潜在客户来源。线索可以来自组织、医生、公司办公室和公司员工。以下是构成潜在客户的不同类型的数据。

表组织:
   - 名称 - 文本

表医生:
   - NPI# -- INTEGER(每个医生都是唯一的。我计划将其用作主键)
   - 名字 -- 文本
   - 姓氏 -- 文本

表公司办公室:
   - 位置 - 文本

表公司员工:
   - 部门
      -- {销售、技术员、QA}之一。请注意,该员工不受办公室约束。
         办公室线索是来自不同地点的杂项办公室工作人员的线索。
   - 名
   - 姓

这是 TABLE 产品销售清单:
   - [杂项]
   - PrescribingPhysicianNPI > 多对一 > Doctor.NPI
      -- “为病人开处方的医生”
   - 销售代表 > 多对一 > [公司员工].PrimaryKey
      -- “销售代表记入销售。需要计算佣金”
   - LeadSource > ???

杂项信息:

公司为潜在客户提供奖励(附属佣金)并为销售人员提供奖励(销售佣金)。来自组织和公司办公室的线索不会获得支付的会员佣金。我正在考虑将 TABLE 公司办公室合并到 TABLE 组织中,并使用“Office --”作为跟踪不同办公室的数据(即:Organization.Name =“Office -- Cincinnati”)。馊主意?问题?

database-design relational-theory
  • 1 1 个回答
  • 387 Views

1 个回答

  • Voted
  1. Best Answer
    ericb
    2011-09-16T19:36:46+08:002011-09-16T19:36:46+08:00

    这可能会强制对您的表进行一些更改,但我们在工作中会做这样的事情:

    确保每个表都有某种类型的 int/guid 主键:

    组织表

    ID | Name
    1  | MyOrganization
    

    然后创建一个类型表来容纳不同的 LeadSource 类型:

    LeadSourceTypeKey | Description
    1                 | Organization
    2                 | Company Office
    

    然后在您的 ProductSoldList 表上添加 2 列LeadSourceID和LeadSourceType

    然后您可以轻松查询ProductSoldListTABLE 并知道要加入哪个 LeadSource:

    SELECT *
    FROM   [ProductSoldList] PL
           INNER JOIN [Organization] O
           ON PL.LeadSourceID = O.ID AND
              PL.LeadSourceType = 1
           INNER JOIN [Company Office] CO
           ON PL.LeadSourceID = CO.ID AND
              PL.LeadSourceType = 2
    
    • 1

相关问题

  • MySQL VARCHAR 和 TEXT 数据类型有什么区别?

  • 存储计算值或根据要求重新计算它们更好吗?[复制]

  • 存储与计算聚合值

  • 在数据仓库中实现多对多关系有哪些方法?

  • 如何构建模型以正确有效地表示关系数据库上的树状数据?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve