处理可选字段的非空
handling not null for optional fields
假设前端有一个用于用户注册的输入表单。用户可以通过全名或公司名称注册。在这种情况下处理空数据类型的最佳方法是什么?数据类型应该是 NOT NULL
并且默认值是什么吗?可能不是每个用户在注册时都会同时使用全名和公司名称。
CREATE TABLE customer(
company_name VARCHAR(255),
full_name VARCHAR(255)
)
null
通常是表示没有数据的方式;在您描述的场景中,使用默认值似乎没有帮助。
然后:默认情况下,列可以为空。如果要强制执行一条规则,即至少两列中的一列不应该为空,则可以使用检查约束。将串行主键添加到 table 也是一个好主意。
create table customer(
customer_id serial primary key,
company_name varchar(255),
full_name varchar(255),
check (company_name is not null or full_name is not null)
);
假设前端有一个用于用户注册的输入表单。用户可以通过全名或公司名称注册。在这种情况下处理空数据类型的最佳方法是什么?数据类型应该是 NOT NULL
并且默认值是什么吗?可能不是每个用户在注册时都会同时使用全名和公司名称。
CREATE TABLE customer(
company_name VARCHAR(255),
full_name VARCHAR(255)
)
null
通常是表示没有数据的方式;在您描述的场景中,使用默认值似乎没有帮助。
然后:默认情况下,列可以为空。如果要强制执行一条规则,即至少两列中的一列不应该为空,则可以使用检查约束。将串行主键添加到 table 也是一个好主意。
create table customer(
customer_id serial primary key,
company_name varchar(255),
full_name varchar(255),
check (company_name is not null or full_name is not null)
);