zoukankan      html  css  js  c++  java
  • 数据库主键的选择

    以前在设计数据表的主键字段时,并没有深入地考虑过这个问题。昨天在看《应用Rails进行敏捷Web开发》时,里面提到了这个问题。

    书里举了一个图书的例子。对于大多数人的经验来说,可能会选择用书的ISBN编号来作为主键,因为每一种图书的ISBN编号在全世界都是唯一的。但其实这也不是绝对的,ISBN的格式也有可能在开了几个会以后发生改变。因此,最好还是由开发者自己定义一个简单的ID字段来表示主键。另外,对于常用的用户名表,我以前也是把username作为数据表的主键。虽然用户名不允许更改,而且也必须唯一,但仍然有问题。比如一个用户名是“xxx/yyy”,如果显示用户信息的页面URL是example.com/user/zzzz这种格式的,那么那种用户名就有可能出问题。因此最好还是使用数字ID而不是用户名作为主键更好些。

    对于实现多对多关系的关联表,通常是使用两个表的外键组合起来作为主键。这通常也不会存在什么问题,实际上有很多确实是这个用的。但有时候关联表并不仅仅是作关联用,还可以在上面附加更多的信息。这样关联表就可以作为一个模型类实现,只要有它的现实意义。在这种情况下,也可以考虑用一个数字ID作为主键。通常这样能简化查询,提高查询速度。

    转自:http://cn.programmingnote.com/blog/?p=98

    用户名应该唯一   做唯一标识!加非簇索引!,对用户可见   
    ID做为主键   一般用来join,对用户不可见! 

  • 相关阅读:
    django 模板继承与重写
    python 简单实现淘宝关键字商品爬取
    django 表单过滤与查询
    mongo 服务化与删除
    python 虚拟环境的搭建
    mysql安装与卸载
    2255倍四路输出分频器~~互相学习
    课程学习说明
    [数字图像处理]灰度直方图均衡化
    [数字图像处理]3*3模板灰度图像空间域变换
  • 原文地址:https://www.cnblogs.com/craig/p/1722088.html
Copyright © 2011-2022 走看看