能说说复合主键和自增主键的利弊吗?它们各用在什么场合

解决方案 »

  1.   

    用Sequence来做主键,相比复合列做主键,有如下好处:
    1.性能高
    2.灵活性好
    3.开发便捷
    --------------------------
    1.性能高是指多表连接时, 一个表的主键是多列的组合, 另一个表以此为外键, 那么这两个表做连接时的性能相比都以一个Number列来连接来说, 哪个的性能更好? Buffer Gets更低?2.灵活性好是指当你用有意义的字段组合来表示主键时, 如果这些字段发生了变化, 对你的系统来说将是非常痛苦的事情, 比如用身份证号码来做主键, 那么身份证号码15位升18位, 那对你的系统来说将是一场灾难.3.开发便捷是指,对于一个Table当你在代码中系统通过主键去定位一笔数据时, 你希望主键是单列的还是复列的? 如果是用in子句定位多笔呢?