2013-03-15 1 views
0

Следуя моему предыдущему вопросу here, есть ли способ иметь такое же поведение, как ON DELETE CASCADE (MySQL) с JayData?Удалить каскад JayData

Если я удалю тест, я бы хотел, чтобы все связанные главы и чеки были удалены. Я пробовал этот код:

myDB.onReady(function(){ 
    myDB.Tests.filter(function(test) { return test.Name == this.Name; }, {Name: myTest.Name}).forEach(function(test){ 
     console.log('Starting to remove '+test.Name); 
     myDB.Tests.remove(test); 
     myDB.saveChanges(function() { 
      console.log(test.Name+' removed'); 
     }); 
    }); 
}); 

Но он не удаляет детей. Может ли это быть связано с объявлением Chapters и Checks в контексте? Вероятно, JayData не видит их как детей, а как независимые объекты.

Я также где-то видел, что для выполнения каскадных операций с SQLite требуется некоторая конфигурация. Я догадался, что JayData справится с этим.

ответ

0

В JayData нет такой функциональности. WebSQL/sqlite имеет встроенную функцию, но indexedDb ее нет. Мы могли бы реализовать его в indexedDb, но никто не просил об этом. Если вам это нужно, пожалуйста, добавьте его в наш журнал или создайте проблему в github.

+0

Прошу прощения, ваш ответ довольно неясен. Имеет ли indexedDb это или нет ('indexedDb имеет встроенную функцию, но indexedDb hasn't')? В любом случае, я сделал запрос на эту функцию в вашем отставании. – Maxbester

+0

Извините, исправил его, так что у websql/sqlite эта функция встроена, indexeddb этого не делает, мы пытаемся иметь общий api, поэтому для indexeddb нам придется реализовать его самостоятельно. Кроме того, у sqlite есть эта функция с версии X, поэтому, возможно, нам придется реализовать это для sqlite также для старых телефонов ... –

+0

Хорошо и что такое синтаксис для удаления каскада в websql/sqlite? Это делается автоматически? Думаю, я могу дождаться, когда вы его реализуете для IndexedDb. На данный момент я буду использовать websql, так как приложение будет запущено только в Chrome и Safari. – Maxbester