Wenn ich eine Tabelle mit den folgenden Feldern erstellen column_one, column_two, column_three, und ich möchte die Kombination (column_one: column_two) eindeutig sein, würde ich Folgendes tun:Sequelize, viele eindeutige zusammengesetzte Schlüssel mit dem gleichen Feld
column_one: { type: DataTypes.INTEGER, unique: 'composite_one'},
column_one: { type: DataTypes.INTEGER, unique: 'composite_one'},
column_three: { type: DataTypes.INTEGER}
Was passiert, wenn ich zwei eindeutige Kombinationen benötige, beide mit einem der Felder? Ex: (column_one: column_two) und (column_one: column_three) müssen beide eindeutig sein, obwohl (column_two: column_three)
wiederholt werden kannTheoretisch wäre es so etwas wie:
column_one: { type: DataTypes.INTEGER, unique: 'composite_one', unique: 'composite_two'},
column_one: { type: DataTypes.INTEGER, unique: 'composite_one'},
column_three: { type: DataTypes.INTEGER, unique: 'composite_two'}
Dies ist kein Join-Tabelle, und ich möchte keine rohen Abfragen verwenden.
Auch column_one muss eindeutige Kombinationen mit 2 und 3 erstellen, aber es bedeutet nicht, dass Spalte eins, zwei und drei eine einzige eindeutige Kombination erstellen müssen.
Falls die Erklärung nicht klar ist, ich gebe ein Beispiel:
column_one ----- column_two ---- column_three
-11---------------12----------------13-------
-11---------------12----------------14-------
-18---------------12----------------15-------
ist kein gültiger Satz von Daten, weil es zwei Reihen mit (column_one: column_two) = (11.12)
Aber
column_one ----- column_two ---- column_three
-11---------------12----------------13-------
-11---------------17----------------12-------
-18---------------12----------------15-------
-11---------------12----------------15-------
ist ein gültiger Satz von Daten
Das Problem mit dieser Lösung wird in https://github.com/sequelize/cli/issues/462 behandelt. –