加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在数据库表中排序列

发布时间:2020-12-12 16:56:20 所属栏目:MsSql教程 来源:网络整理
导读:当涉及DB表中的列顺序时,是否有任何标准或至少最佳做法? 这是一个手工制作的惯例,我遵循: 主键(即id); 唯一列(即电子邮件,ssn); 外键(即物品); 列保存用户生成的数据(即first_name,last_name); 列保存系统生成的数据; 非布尔值(即password_hash); 布尔值(即
当涉及DB表中的列顺序时,是否有任何标准或至少最佳做法?

这是一个手工制作的惯例,我遵循:

>主键(即id);
>唯一列(即电子邮件,ssn);
>外键(即物品);
>列保存用户生成的数据(即first_name,last_name);
>列保存系统生成的数据;

>非布尔值(即password_hash);
>布尔值(即删除,验证)

> timestamp列(即created_at);

这些留下许多问题没有答案,所以我想听听你的想法.

解决方法

简而言之,您已经很好地说出了标准约定,并没有错过很多.海事组织,唯一可能会让某人看起来不专业的举动将不是首要的主键.在这之后,外键正好是一个很好的惯例,但不是很大的事情. (包括外键的多字段主键当然应该是在刚开始的时候,或有人应该被殴打.)我还会再增加两个想法:

>有相似主题的领域彼此靠近.例如,将City / State / Zip字段广泛分开是无益的.我觉得user_role或user_ip是否先到了,但是他们听起来应该是彼此相邻的,这并不重要.
>继续使用其他这样的惯例,它不会伤害字母字母的东西.

在数据库中附加的约定是一个很好的主意(就像你所提到的那样,始终在最后有时间戳).如果您在许多表格中有ChangeDate和ChangeBy字段,让它们(彼此相邻,并且一致)位置很好.

另外,ErikE提到,在表的最后,可能会有一些效率,它们可能包含空值的变量长度字段(varchar,nvarchar).除此之外,我不认为在现代关系数据库中以某种方式安排事情有任何性能优势.

命名

通常,当您决定列顺序时,您决定列名称的同时,所以我想解决一点.你当然可以用命名你的领域做出可怕的代价高昂的错误;这比您的列排序要重要得多.订单可以轻松更改,但名称不佳将永远导致您的问题.一年后改变表/列名称是一个巨大的痛苦,当时有十几个参考.我刚刚添加了一个答案here来解决这个非常重要的话题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读