gpt4 book ai didi

mysql - 创建表时在 SQL 中对列进行排序的最佳做法

转载 作者:可可西里 更新时间:2023-11-01 07:06:34 24 4
gpt4 key购买 nike

我有一个包含以下列的表 foo

create table foo (
id integer not null auto_increment unique,
name varchar(255),
desc varchar(255),
modified_time datetime not null,
type tinyint(1)
)

是否有任何最佳实践来遵循所有列的排序约定(例如,以字母顺序排列或顶部不为空,其余列在底部)

最佳答案

当然是主键first
该列的名称通常是 tablename_id(传统)或只是“id”(rails 等框架首选)。

如果使用,接下来通常是名称/描述字段,如您所愿。

我倾向于将外键放在后面(首先是 parent ,然后是 child ),因为他们在开发过程中往往更为关键。

然后我将其他数据分组,例如地址行、城市、州、 zip 在一起。

当没有其他规则适用时,我倾向于选择更高的必填字段以提高可见性。

时间戳(created_on、updated_on、removed_on 等的部分/全部)通常是last

所以在你的例子中我实际上会这样做:

create table foo (
id integer not null auto_increment unique,
name varchar(255),
type tinyint(1),
desc varchar(255),
modified_time datetime not null
)

注意 - 正如 Kolink 指出的那样,使用 description 而不是 desc 因为 desc 是一个保留字,意思是降序,例如顺序说明

However... big disclaimer...

如果您的表随时间变化(即现实世界)并且您有现有的生产数据,您将不会按最初“计划”的顺序排列字段。这可以通过导出和重新导入来避免,但在许多情况下,最好接受排序只是为了程序员方便而进行的初始创建的约定。

此处的另一个热门话题是列名命名约定。这是一个完全不同的话题,但我会说除非被迫,否则不要缩写!

关于mysql - 创建表时在 SQL 中对列进行排序的最佳做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7938917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com