2015-05-22 2 views
3

Я создал следующую таблицу соединений, чтобы связать пользователей и модель игры.Ограничение уникальности для нескольких атрибутов с WaterlineJS

Я хотел бы создать ограничение уникальности (пользователь, нога).

Вот мой код:

module.exports = { 

    attributes: { 
    foot:{ 
     type: 'integer', 
     foreignKey: true, 
     references: 'foot', 
     on: 'id' 
    }, 
    user:{ 
     type: 'integer', 
     foreignKey: true, 
     references: 'user', 
     on: 'id'   
    }, 
    statut:{ 
     type: 'integer', // 0 invited, 1 playing, 2 denied, 3 organisator 
     defaultsTo: 0 
    } 
    } 
}; 

Я использую "паруса-Mysql" адаптер.

Выполняет ли ватерлиния то, что или я должен делать это непосредственно в моей БД?

Спасибо!

+0

Я не думаю, что это возможно с Waterline, вам придется проверять его вручную. –

ответ

5

Не сделал ничего подобного раньше. Ваша проблема показалась мне интересной. Поэтому я немного поработал. Для решения этой проблемы в github-хранилище ватерлинии существует несколько проблем. Один - issue#244, а другой - issue#221. Ни у одного из них нет никаких признаков твердого решения вашей проблемы, и я думаю, что с Waterline ORM это невозможно.

Но поскольку вы используете mysql, вы можете сделать это, выполнив необработанный SQL-запрос из вашего адаптера базы данных. В вашем config/bootstrap.js вы можете написать скрипт, чтобы проверить, доступно ли это ограничение в вашей базе данных. Если он доступен, вы ничего не сделаете, но если он недоступен, вы создадите новое ограничение для обеспечения уникальности.

Я думаю, что это не решение, которое вы искали, но я боюсь, что это лучшее решение, которое у вас есть в данный момент. Надеюсь, поможет.

Смежные вопросы