youngforcoding 2017-06-20 03:58 采纳率: 0%
浏览 1223

看到自然主键和代理主键,建表时带来的一些问题

学习Hibernate的时候,看见了有个叫做自然主键和代理主键的。代理主键说应该通过另外定义一列id进行标识这样做的好处是,需求更改了,我这个代理主键也不影响业务需求。但是想想数据库的三大范式,似乎好像不符合第二范式。。第二范式要求我们建表的时候表的所有字段除了主键外都要依赖于主键,不能依赖于其他的非主键的字段,而乍一看如果一个学生表中,原本使用身份证作为id那么使用代理主键新建了一列id作为主键,但是其他字段也可以依赖于身份证这一字段。。感觉好像有矛盾。。希望有大牛帮忙解答一下。。

  • 写回答

2条回答 默认 最新

  • TaiChuan_W 2017-06-20 04:20
    关注

    主要区别于数据库吧,有些数据库没有自增长id比如Oracle,所以需要代理或者建立序列表,如果是mysql,哪种策略貌似影响不大,,,hibernate由于查询性能问题,用得越来越少了,不要太纠结,有时间抓紧学mybatis

    评论

报告相同问题?

悬赏问题

  • ¥15 bootstrap 表格不对齐,不对齐
  • ¥15 如何使用python-escpos库实现标签打印
  • ¥15 这个IC谁知道是什么用途及型号?
  • ¥15 sd问题(标签-stable diffusion|关键词-table)
  • ¥20 python-escpos 标签打印
  • ¥15 移动端浏览器自带播放器控件
  • ¥60 请求帮助 电脑无法安装exe
  • ¥15 怎么不用break/import过滤不符合要求的输入!求解答!
  • ¥15 cs2游戏卡顿,控制台一直跳码
  • ¥15 imshow 不能显示图片只有白色空白窗口