A_A333
2018-08-16 01:34
采纳率: 66.7%
浏览 2.4k
已采纳

数据库多个表有重复的字段

比如说数据库有a,b,c,d,e,f,g这几个表都有几个字段是相同的,例如描述字段,更新时间字段
修改人字段等等,这个时候是单独抽出一个表记录这些重复信息,用外键关联,还是就让他有多个重复字段算了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • blownewbee 2018-08-16 01:42
    已采纳

    如果这些字段很少或者根本不修改,那么直接嵌入性能更高。
    如果是数据一致性敏感的内容,就必须关联查询。

    点赞 打赏 评论
  • BlackHeart1203 2018-08-16 01:40

    重复字段中的数据是否一致,如果不一致则保留原来的;若数据完全一致,则用外键关联就好。

    点赞 打赏 评论
  • 玄尺 2018-08-16 01:44

    按照我的经验,表的字段至少包含两部分信息:关键信息、属性。像表中自增字段、业务主键(候选键)都是关键信息,像描述字段,更新时间字段都属于属性,这些字段是这个表中不可缺少的,更有可能一个新的需求变更,这些属性就会升级为外键。一般来说就放在那里就可以了。

    点赞 打赏 评论
  • qq_40386508 2018-08-16 01:45

    其实两种方法都可以,第一种可能逻辑比较清晰易懂,但是有时候可能会有点饶人,第二种好处就是简单,但是可能性能上有点不太好

    点赞 打赏 评论
  • Ansel-su 2018-08-16 02:11

    个人支持第二种,虽然性能有损耗,但会避免很多不必要的问题。

    点赞 打赏 评论
  • fertgrhg 2018-08-16 02:12

    我觉得还是就这样放着就好了,外键关联的话之后这些字段如果有变动那么修改也会比较多

    点赞 打赏 评论
  • _zming 2018-08-16 03:23

    外键一般只能是主键或唯一列,现在计算机存储都比较便宜了,空间不是问题,字段重复不算大问题,代码清晰好写也很重要,像描述信息最好不要通过外键去
    引用,引入外键最大的问题是需要联接查询,在数据量大的时候应当减少表连接查询,所以不用单独抽出去

    点赞 打赏 评论
  • 人心鬼蜮 2018-08-16 03:56

    其实这个跟java中定义常量类差不多,自己定得失。

    点赞 打赏 评论
  • 小宇宙呀_6 2018-08-16 13:38

    根据业务场景决定,个人不建议使用外键关联。首先我们要清楚这些字段的用途,如果就是记录对数据变更的属性(比如创建时间 创建人 修改时间 修改人等)字段时,建议直接作为这张表的一个属性,就我们的用途而言,大多数是查看数据的变更记录或是向其他系统推送变更数据,这样做会比较方便,若使用关联表,感觉有点多此一举了。

    点赞 打赏 评论

相关推荐 更多相似问题