我有两个服务正在运行。一个是Node.js应用程序,另一个是PSQL数据库。我不确定应该在哪里定义我的数据库模式。
一些库(例如Sequelize)使用应用程序语言(在这种情况下为JavaScript)来定义它。
var User = sequelize.define('user', {
firstName: {
type: Sequelize.STRING,
field: 'first_name' // Will result in an attribute that is firstName when user facing but first_name in the database
},
lastName: {
type: Sequelize.STRING
}
});
但我认为最好是在纯SQL中定义它们。
CREATE TABLE users (
id SERIAL,
first_name varchar(85),
PRIMARY KEY (id)
);
这种方法可以使其他平台上的其他应用程序在不影响模式的情况下使用数据库。据我所知,数据库定义应该独立于应用程序的语言。我是否遗漏了什么?为什么许多库都会为你定义数据库模式?