设计多对多表时解决重复问题

目前流行两种设计方式: 方式一 是在中间表中建一个单独的id主键, 与业务表关联的键设置为unique唯一; 干事二: 联合主键的方式, 该方式中间表不会有与业务表无关的主键,即把与业务表关联的键 进行联合 作为主键

下面是使用pd来设计表的两种详细方式

方式一: 中间表采用一个单独的id主键与业务表无关

双击表模型选择keys添加你想要设置的唯一主键名

双击箭头进入内部选择Mysql勾上 Unique key

然后选择columns添加要设置唯一的列

点击确定完成, 下面是设计好的表

完整的

方式二: 传统的联合主键方式, 也是我最喜欢的方式, 这种方式简单, 只需要在设计表是将字段的主键都勾上即可, 不许要含有与业务无关的主键, 即主键都是由业务表的键联合组成唯一

就是这么简单, 点击确定完成

总结: 两种方式各有好处目的都是保证数据的唯一性, 方式一便于维护, 缺点步骤稍复杂需要多余的与业务无关的字段; 方式二操作简单不需要含有与业务无关的字段, 缺点不好维护

最新文章

  1. 应用Apache Axis进行Web Service开发
  2. iOS10 导航条,这个二狗子变了...踩坑
  3. 【转】工控老鬼】西门子S7200入门&精通【1】S7200硬件大全
  4. java基础1.0::Java面向对象、面向对象封装、抽象类、接口、static、final
  5. Loadrunner在post请求的cookie中插入其它多个值
  6. javascript平时小例子③(setInterval使用1)
  7. Jmeter如何设置断言
  8. Html table 合并单元格
  9. IIS环境下部署https【转载】
  10. 关于C#中遍历字符串中的每个字符的方法
  11. CustomDrawableTextView
  12. 4-安装mariadb
  13. spring 之 类型转换 2
  14. abp 取消权限校验
  15. Python条件控制与循环语句
  16. 从 Firefox 35 版本开始,就无法兼容 PAC 式代理
  17. shell dict 操作
  18. Synchronized常用用法
  19. Linux服务器上Tomcat的Web工程部署
  20. VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单并删除程序组菜单的实例

热门文章

  1. CF Amr and Pins (数学)
  2. Linux 命令 - crontab: 任务调度
  3. AngularJS 学习随笔(一)
  4. <Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
  5. ios 多线程-GCD-NSOperation
  6. wpf DataGrid 双击获取当前行的控件
  7. (转)基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
  8. SVN之文件同步更新
  9. VC6配置OpenCV1.0
  10. Emit