Tag: sql

Node.js整理数据库规范化

我正在尝试将PHP网站迁移到Node.js,现在我正在考虑使用Sequelize设置数据库。 大多数表格都设置好了,但是我很难弄清楚如何进行标准化。 例如我有1个数据库用户: ID Username Email Password 另一个名为Domains的表格: ID Domain RegisteredAt 现在我需要创build一个第三个表来链接到这两个表一起查找,如下所示: UserID DomainID 我试图从Sequelize文档设置OneToOne关联,但是这只是似乎在原来的两个表中创build一个额外的字段。 有人可以解释我该怎么做吗? 谢谢你的帮助

用不同语言编写的两个程序能连接到同一个SQL数据库吗?

问题几乎在标题,但这里是具体的。 对于我的高级devise项目,我们将编写软件来控制一些硬件并在Web前端显示诊断信息。 为了实现这一点,我打算使用Python和nodejs的组合。 理论上,python服务脚本将通过bacnet IP与硬件进行通信,并在SQL数据库中logging诊断信息。 nodejs JavaScript服务器代码将通过查询数据库并返回相关信息来响应webfront请求。 我很新的SQL,所以我的主要问题是..这是可能的吗? 我的第二个和更抽象的问题是…这是明智的吗? 而且,在两端使用相同的语言是否有明显的优势,无论这种语言是Python,Java还是其他语言?

如何返回Sequelize中树节点的子节点数?

我有一个像这样定义的分层树数据结构: module.exports = function(sequelize, DataTypes) { var Category = sequelize.define('Category', { id: { type: DataTypes.STRING, primaryKey: true }, parent: DataTypes.STRING, text: DataTypes.STRING } ); Category.belongsTo(Category, { foreignKey: 'parent' }); return Category; }; 我有一个服务返回给定节点的子节点列表,如下所示: exports.categoryChildren = function(req, res) { var id = req.params.id; db.Category.findAll({ where: { parent: id }}).success(function(categories){ return res.jsonp(categories); }).error(function(err){ return res.render('error', { error: […]

续集目标postgres 8

我一直在项目中使用sequelize一段时间。 从现在起,服务器上没有部署任何东西,我想这只是“npm install”并运行应用程序。 但是我在服务器上发现了这个奇怪的错误: { [SequelizeDatabaseError: error: syntax error at or near "NOT"] name: 'SequelizeDatabaseError', message: 'error: syntax error at or near "NOT"', parent: { [error: syntax error at or near "NOT"] name: 'error', length: 81, severity: 'ERROR', code: '42601', detail: undefined, hint: undefined, position: '17', internalPosition: undefined, internalQuery: undefined, where: undefined, file: 'scan.l', line: […]

SQL node.js什么似乎是一个有效的查询语法错误?

我在桌子上运行更新以设置位置。 我解压查询并手动运行在我的数据库上,工作正常,但通过connection.query()传递时,似乎认为我的node.js控制台中有语法错误。 function sendShipPosition(position) { var input = ''; if (position.moving === true) { var currentdate = new Date(); var datetime = currentdate.getFullYear() + "-" + (currentdate.getMonth()+1) + "-" + currentdate.getDate() + " " + currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + currentdate.getSeconds(); var input = ', moving_datetime = ' + datetime; } connection.query('UPDATE […]

根据belongsToMany关系字段进行过滤

使用链接表来过滤数据是不可能的。 有两个表教师和俱乐部。 他们有关如何belongsToMany。 我需要让所有的教练club_id =值。 教练模型: sequelize.define('Instructor', { instance_id: DataTypes.INTEGER, name: DataTypes.STRING(255) }, { tableName: 'instructors', timestamps: false, classMethods: { associate: function (models) { Instructor.belongsToMany(models.Club, { through: 'InstructorClub' }); } } }); 俱乐部模式: sequelize.define('Club', { instance_id: DataTypes.INTEGER, name: DataTypes.STRING }, { tableName: 'clubs', timestamps: false, classMethods: { associate: function (models) { Club.belongsToMany(models.Instructor, { through: 'InstructorClub' […]

将nodejs连接到谷歌云SQL

我正在尝试将nodejs的一个实例连接到我的Google云SQL数据库。 它的失败。 我运行命令 node server.js 并得到错误 Problem with MySQL Error: connect ENETUNREACH 这里是我的server.js文件 var gcloud = require("gcloud"); var express = require("express"); var mysql = require("mysql"); var app = express(); var connection = mysql.createConnection({ host : "2001:****:****:*:****:****:****:****", user : "root", password : "*****", database : "scripto_5_k" }); /* Connection to Database */ connection.connect(function(error){ if(error) { console.log("Problem […]

用空结尾OR或

我正在尝试使用Sequelize来生成(半)复杂的条件。 我想要生成的SQL是: SELECT * FROM Tasks WHERE completedDate IS NULL OR completedDate < CURRENT_TIMESTAMP; 所以我使用Sequelize命令: Task.findAll({ where: { completedDate: null }, $or: [ { completedDate: { $lt: new Date() } } ] }); 但是它返回0行。 难道我做错了什么?

Mysql创build表与自动递增身份证给错误

我只是无法find这个代码有什么问题… connection.query('CREATE TABLE posts (postid int NOT NULL AUTO_INCREMENT, posttitle varchar(255) NOT NULL, postdate datetime NOT NULL, deleted boolean, ownerid int PRIMARY KEY (postid) )'); 我得到错误 Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(postid) )' […]

查询在第二次执行时挂起

我正在考虑一个注册系统。 我使用节点,expression和我的数据库是PostgreSQL。 我使用最新的PG模块与Postgre进行通信。 我的用户获取function是多用途的,根据用户名或用户名得到用户。 (后端) User.get = function (info,t, fn){ var text; if(t=="id"){ text = "SELECT user.id, user.usrnm FROM user WHERE user.id=$1"; } else{ text = "SELECT user.id, user.usrnm, user.role FROM user WHERE user.usrnm=$1"; } var query = client.query({ text:text, values:[info]}, function(err, result){ if(err) {return fn(err);} query.on("row", function (row, result) { result.addRow(row); }); if(result.rows.length==0){//no user […]