【发布时间】:2019-02-11 09:52:44
【问题描述】:
我正在尝试在两个实体之间创建一对一的关系。我使用sequelize 作为数据库mysql 的ORM。
我的模型定义如下:
var user = (sequelize, DataTypes) => {
const User = sequelize.define('user', {
name: {type: DataTypes.STRING, allowNull: false, unique: true }
}, {
timestamps: false
});
return User;
};
var product = (sequelize, DataTypes) => {
const Product = sequelize.define('product', {
title: {type: DataTypes.STRING, allowNull: false, unique: true, default: 'Coop Default' }
}, {
timestamps: false
});
return Product;
};
并通过以下代码行建立一对一的关系
db.product.belongsTo(db.user);
db.user.hasOne(db.product);
但是,这不会在表 products 中创建唯一的外键。
mysql> desc products;
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | UNI | NULL | |
| userId | int(11) | YES | MUL | NULL | |
+--------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
我还应该在 ORM 中做些什么来确保 userId 是唯一的?
【问题讨论】:
-
请检查以下答案 - stackoverflow.com/questions/29551941/…
标签: javascript mysql orm sequelize.js relationship