2017-04-12 47 views
0

由於在將兩個模型與Sequelize關聯起來的時間很少,所以我正面臨一個問題。NodeJS Sequelize - 錯誤的關係方向

var Ticket = sequelize.define("Ticket", { 

    IDTicketBase: { type:DataTypes.INTEGER, primaryKey: true }, 
    IDStatus: DataTypes.INTEGER, 

    } 

associate: function(models){ 
     models.Ticket.hasOne(models.Status, {foreignKey: 'IDStatus'}); 
} 

var Status = sequelize.define("Status", { 

    IDStatus : { type:DataTypes.INTEGER, primaryKey: true }, 
    Name: DataTypes.STRING 

    } 

    associate: function(models){ 
     models.Status.belongsTo(models.Ticket, {foreignKey: 'IDStatus'}); 
    } 

此代碼生成關係Ticket.IDTicketBase = Status.IDStatus。 如果我想要關係Ticket.IDStatus = Status.IDStatus,我必須在我的兩個模型上寫什麼?

我想生產1對1協會。

感謝您的答覆;)

回答

0

我要產生1比1的關聯。

而你在這裏。關係模型中沒有1對1的關係。如果你在兩個關係中的元組之間有1對1的關係,那麼這只是一個關係,而不是兩個關係。

在一個關係模型中,通過在第二個關係中包含一個關係的主鍵來建模一對多關係,並且通過引入包含兩個主鍵的第三關係來建模多關係你想要連接的關係。沒有這樣的事情是真正的1對1關係。例如,你可能會說你在用戶和她的名字之間有一對一的關係,但實際上你只是在用戶的關係中包含了這個名字。

+0

好的,我認爲它不能是雙向的。但我無法弄清楚Ticket.hasOne或Status.belongT之間的哪個指令必須用於爲select查詢中的jonction產生正確的方向,以使Ticket.IDStatus = Status.IDStatus。我嘗試了所有可能的方向,在我的Ticket模型中將'references'屬性添加到字段IDStatus,但是我無法實現它的功能。 –