命名规范

表名 (Table Names)

  • 使用小写字母,采用 lower case。
  • 使用下划线 _ 分隔单词。
  • 表名采用复数形式(例如存储用户的表,不是 user 而是 users)。
  • 应避免使用保留字,如果使用请使用双引号包裹。
-- Good
CREATE TABLE employee_data (
  employee_id SERIAL PRIMARY KEY,
  first_name VARCHAR(50),
  last_name VARCHAR(50)
);

-- Avoid
CREATE TABLE EmployeeData (
  employeeId SERIAL PRIMARY KEY,
  firstName VARCHAR(50),
  lastName VARCHAR(50)
);

列名 (Column Names)

  • 与表名相同,使用小写字母和下划线。
  • 明确描述列的内容,避免使用缩写。
-- Good
CREATE TABLE employee_data (
  employee_id SERIAL PRIMARY KEY,
  first_name VARCHAR(50),
  last_name VARCHAR(50),
  hire_date DATE
);

-- Avoid
CREATE TABLE employee_data (
  emp_id SERIAL PRIMARY KEY,
  fname VARCHAR(50),
  lname VARCHAR(50),
  h_date DATE
);

主键约束 (Primary Key Constraints)

  • 命名格式可以是 表名_id_pk
-- Example
ALTER TABLE employee_data
ADD CONSTRAINT employee_data_id_pk PRIMARY KEY (employee_id);

外键约束 (Foreign Key Constraints)

  • 命名格式可以是 表名_列名_fkey
-- Example
ALTER TABLE orders
ADD CONSTRAINT orders_customer_id_fkey
FOREIGN KEY (customer_id) REFERENCES customers(customer_id);

索引 (Indexes)

  • 命名格式可以是 表名_列名_idx
-- Example
CREATE INDEX employee_data_last_name_idx
ON employee_data(last_name);

约束 (Constraints)

  • 如果有多个约束,可以使用 表名_列名_constraint 的格式。
-- Example
ALTER TABLE employee_data
ADD CONSTRAINT employee_data_salary_check
CHECK (salary > 0);

函数和存储过程 (Functions and Stored Procedures)

  • 使用小写字母和下划线。
  • 使用有意义的函数名,清晰描述函数的作用。
-- Example
CREATE FUNCTION calculate_salary_bonus(employee_id INT)
RETURNS DECIMAL AS
-- Function logic goes here
$$ LANGUAGE SQL;

触发器 (Triggers)

  • 使用小写字母和下划线。
  • 使用有意义的触发器名称。
-- Example
CREATE TRIGGER update_last_modified
BEFORE UPDATE ON employee_data
FOR EACH ROW
-- Trigger logic goes here
$$ LANGUAGE SQL;

参考资料