2016-10-21 70 views
0

我有数据库表包含updated_date列如下。数据库表设计的最佳实践update_date NOT NULL约束

CREATE TABLE table_name 
(
    id character varying(20) NOT NULL, 
    created_date timestamp NOT NULL, 
    updated_date timestamp, 
    isactive smallint DEFAULT 1, 
    version smallint NOT NULL DEFAULT 0, 
    CONSTRAINT table_name_pkey PRIMARY KEY (id) 
); 

请建议updated_date timestamp NOT NULL是最佳做法?

+0

如果您不想/需要记录更新记录时,最佳做法是最佳做法。那么,根据您的业务逻辑,更新时间戳是强制性的吗? –

+1

根据创建记录时的逻辑添加创建日期,并在记录更新时添加更新日期。创建记录时最佳做法是否将相同的时间戳添加到created_date和updated_date? –

+0

我没有发现这样做有什么问题,除非您需要确定刚刚创建的记录,在这种情况下'NULL'可能会有一些特殊含义。 –

回答

1

这取决于你如何使用这些列。

我看没有错,宣布柱NOT NULL并使用相同的created_dateupdated_date当创建一个记录(不包含“日期”以为我选择的名称)。

我认为如果应用程序可能不弯曲它的手臂(如果使用1970-01-01 00:00:00来表示缺失的数据),那么有专栏NOT NULL是一种好习惯。它通常会使查询更简单,因此如果不需要处理NULL值就更有效。