Я пытаюсь создать отношения один к одному между двумя объектами.Я использую sequelize
в качестве ORM для базы данных mysql
.
Мои определения моделей следующие:
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
уникален?