Database design 如何为许多电话号码设计员工表?

Database design 如何为许多电话号码设计员工表?,database-design,Database Design,假设您正在设计一个员工表,并且必须容纳不同的电话号码。。现在有家,有工作,还有牢房,但我想将来可能还有其他的。也就是说,企业关心的是每个员工使用什么样的手机。你将如何设计它 这是一种非规范化的方法。简单,但这意味着为任何新电话类型添加一列: 员工 雇员ID 员工姓氏 EmployeeFirstName 员工家庭电话 员工工作电话 员工手机 细胞音素ID 手机 细胞音素ID 手机制造 手机型号 这里有一个更规范化/可扩展的方法,但接下来要解决的是,对于类型为cell(而不是类型为home或

假设您正在设计一个员工表,并且必须容纳不同的电话号码。。现在有家,有工作,还有牢房,但我想将来可能还有其他的。也就是说,企业关心的是每个员工使用什么样的手机。你将如何设计它

这是一种非规范化的方法。简单,但这意味着为任何新电话类型添加一列:

员工

  • 雇员ID
  • 员工姓氏
  • EmployeeFirstName
  • 员工家庭电话
  • 员工工作电话
  • 员工手机
  • 细胞音素ID
手机

  • 细胞音素ID
  • 手机制造
  • 手机型号
这里有一个更规范化/可扩展的方法,但接下来要解决的是,对于类型为cell(而不是类型为home或work)的电话号码,在哪里放置手机品牌/型号信息:

员工

  • 雇员ID
  • 员工姓氏
  • EmployeeFirstName
员工电话

  • 雇员姓名
  • 员工电话号码
  • PhoneTypeId
电话类型

  • PhoneTypeId
  • PhoneTypeName
  • CellPhoneTypeId类似的东西

    Phone
    ID 
    Name 
    Number 
    Type ENUM('Work', 'Home','Cell')
    
    Employee
    ID 
    EmployeeLastName 
    EmployeeFirstName 
    
    EmployeePhone
    ID
    EmployeeID
    PhoneID
    
    员工
    员工ID
    EmployeeLastName,EmployeeFirstName

    电话
    音素ID
    PhoneTypeID,PhoneNumber

    电话类型
    PhoneTypeID
    Phonemake、Phonemodel

    员工电话
    员工ID,联系方式
    音素

    我建议将
    Phonetype
    全部删除。事实上,这并不重要——而且很快就会被陈腐的垃圾填满。我看不出有哪位高层管理人员会觉得有必要把他们最新玩具的细节告诉IT部门。毕竟,它应该自动知道,不是吗

    我会添加一个
    联系人
    字段-看,我不太擅长字段名,好吗?我指的是联系的原因,可能是“工作”或“家”或“周末”或“高尔夫俱乐部(周四)”或其他什么<代码>注释可用于井注,如
    询问Jacinta
    如果
    联系人
    是“医疗急救”

    至于有多部手机——我认识的一位医生携带三部手机——这是除了他的办公室电话、实习电话、至少两部医院办公室电话、家里的公用电话和家里的私人电话(还有多个家庭……)他能记住所有的数字真是奇迹…

    类似于我个人对@mrjoltcola选项2)扩展性的追求