命名规范
表名 (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)
-- Example
ALTER TABLE employee_data
ADD CONSTRAINT employee_data_id_pk PRIMARY KEY (employee_id);
外键约束 (Foreign Key Constraints)
-- Example
ALTER TABLE orders
ADD CONSTRAINT orders_customer_id_fkey
FOREIGN KEY (customer_id) REFERENCES customers(customer_id);
索引 (Indexes)
-- 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;
参考资料