6
Mam tabelę użytkownika i tabelę atrybutów użytkownika. Każdy użytkownik może mieć tylko jedną instancję każdej wartości atrybutu userAttribute, dlatego chciałbym utworzyć złożony unikalny indeks dla nazwy kolumny i identyfikatora użytkownika (Jest to tworzone przez userAttributes.belongsTo). Jak to zrobić?Utwórz indeks złożony z powiązanymi danymi?
UserAttribute = sequelize.define('userAttributes', {
name: {
type: Sequelize.STRING,
allowNull: false,
unique: 'nameIndex',
validate: {
isIn: [['phone', 'name','driverRequest']],
}
},
value: {
type: Sequelize.STRING,
allowNull: false
},
});
User.hasMany(userAttributes, {unique: 'nameIndex'});
userAttributes.belongsTo(User, {unique: 'nameIndex'});
Dodaję unikalne unikalne nameIndex bez powodzenia, wydaje się, że dotyczy to tylko kolumny nazwy.
Mam zmodyfikowany przykład poniżej korzystania z Composite Index, myślę, że to powinno działać, daj mi znać, jeśli nie –
Czy to, co zrobiłeś, aby ręcznie dodać w useId w segmencie danych modelu? Brakuje mi również atrybutu wartości? – Himmators
Nie mogę naprawdę zrozumieć niektórych rzeczy. Napisałeś: "Każdy użytkownik może mieć tylko jedną instancję każdej wartości atrybutu userAttribute, dlatego chciałbym utworzyć złożony unikalny indeks dla nazwy kolumny i userId". Uważam, że te 2 indeksy (userId i nazwa) są zapisywane w userAttribute, popraw mnie, jeśli się mylę. W poniższym kodzie, który podaję, widzę nowe pole "wartość", nie jestem pewien, do czego jest przeznaczony, czy możesz podać więcej informacji na jego temat? lub wyjaśnić, gdzie brakuje kontekstu problemu? –