求一个优雅的数据表设计思路

查看 54|回复 1
作者:moonfly   
求一个优雅的数据表设计思路
数据
mysql 数据库中主要存储 2 个 主要数据:IP 地址 、域名
数据关系
[ol]
  • IP 地址 是根据新增的域名解析后存储的,因此会存在一个 域名 要对应多个IP 地址 的记录;
  • 同一个 IP 地址 也会存在同时被多个 域名 所解析的情况,因此也会存在一个 IP 地址 对应到多个 域名 的情况;
    [/ol]
    需要同时记录 域名、IP 地址 以及他们之间的对应关系;
    业务需求
    查询
    [ol]
  • 能快速查询到所有的 IP 地址 列表(不重复的)
  • 能快速查询出所有的 域名 列表 (不重复的)
  • 能根据指定 域名 快速查询出所对应的全部 IP 地址 列表
  • 能根据指定 IP 地址 快速查询出所对应的全部 域名 列表
    [/ol]
    更新
    [ol]
  • 新增一个 域名 时需要同步新增对应的 IP 地址 数据,
  • 删除一个 域名 时,需要删除它所对应的全部 IP 地址
    [/ol]
    请问最优雅的表结构该如何设计?
    希望能保持 IP 地址 ,域名 字段都是唯一主键,以简化 1 ,2 的唯一查询的效率(避免额外的去重操作);
    但又必须要保存 多对多 的关联关系,以实现 3 ,4 的关联条件查询需求;
    虽然大部分数据逻辑的问题是可以从业务代码的层面来覆盖处理的(例如将查询全部 list 后的去重操作放在代码里处理);
    但我还是想单纯从数据库的角度讨论看看,是否有最优的表设计方案,在满足以上需求的同时,最大化避免在代码中来处理部分的逻辑;

    域名, 地址, 查询, 对应

  • wu00   
    看你排版的这么优雅,表述的如此清晰,我有点好奇。
    难道不是 [I]  ?
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部