除了查询的数据表可以取别名来方便操作外,对数据列也是可以取别名的。
我先来说我的观点:对于数据列,是不建议取别名的。假设有以下两张表
CREATE TABLE department( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR (50 ) ); CREATE TABLE employee( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR (50 ), dept_id INT , CONSTRAINT fk_dept_id FOREIGN KEY(dept_id) REFERENCES department(id) ); INSERT INTO department(name) VALUES ('教学部' ), ('研发部' ), ('产品部' ); INSERT INTO employee(name, dept_id) VALUES ('张三' , 1 ), ('李四' , 3 ), ('王五' , 2 ), ('赵六' , 1 );
因为 id 和 name 重名,那么在查询的时候,后端程序员这么写查询语句
SELECT emp.id, emp.name AS employee_name, dept.name AS dept_name FROM employee AS emp LEFT JOIN department AS dept ON emp.dept_id = dept.id;
得到的数据将为
{ "data" : [ { "id" : 1 , "emp_name" : "张三" , "dept_name" : "教学部" } , { "id" : 2 , "emp_name" : "李四" , "dept_name" : "产品部" } ] }
但是,如果另一个接口的别名不同的话,json 将会输出对应字段名称,照成前端代码不统一。
所以我赞成在建立后端数据库的时候就明确每个数据表之间的字段。