如何使用Sequelize在同一张表上创建外键?"/>
如何使用Sequelize在同一张表上创建外键?
Sequelize很不错,但有时可能会带来挑战。我有一个无法解决的简单示例:表格:ANIMALS
ID PARENT_ID LABEL
-------------------------------
1 ANIMAL
2 1 MAMMAL
3 1 OVOVIPARUS
4 2 PRIMATES
5 2 CARNIVORA
序列化实体:
const Animals = db.define('Animal',
{
id: {
type: Sequelize.INTEGER,
allowNull: false,
primaryKey: true,
},
parentId: {
type: Sequelize.INTEGER,
},
Label: {
type: Sequelize.VARCHAR(20),
},
而且我想这样获取数据:
[
{id:1, superclass: null, label:'ANIMAL'},
{id:2, superclass: {id:1, parent: null, label:'ANIMAL'}, label:'MAMMAL'},
{id:3, superclass: {id:1, parent: null, label:'ANIMAL'}, label:'OVOVIPARUS'},
...
]
并可选地添加子项
[
{
id:1,
superclass: null,
subclasses: [ {id:2, label:'MAMMAL'}, {id:3, label:'OVOVIPARUS'},],
label:'ANIMAL'},
...
]
我应该如何定义关系?谢谢
回答如下:您可以定义自我关联。
Animal.hasOne(Animal, {as: 'Parent'});
Animal.belongsTo(Animal, {as: 'Parent'});
更多推荐
如何使用Sequelize在同一张表上创建外键?
发布评论