Как построить реляционную структуру в JavaScript? - PullRequest
1 голос
/ 28 мая 2009

У меня есть 2 таблицы в БД:

1- Элемент:

  • ElementID
  • ElementName

2- Методы:

  • MethodID
  • ElementID
  • MethodData

Таким образом, между Элементами и Методами существует отношение один ко многим,

Я загружаю данные этих таблиц, используя asp.net,

Что я хочу сделать, это отправить эти данные в мой javascript, и javascript будет выполнять некоторые функции над этими данными.

Например, будет проходить цикл по всем элементам, получать методы каждого элемента и делать некоторые вещи с данными каждого метода.

Я пытался сделать это как классы в jaascript, но обнаружил, что сам написал много вещей,

Сначала 2 класса для элементов и методов, затем 2 массива 1 - для элементов 2 - для методов

И внутри массива методов я написал это:

this.findByElementId = function(elementId) {
    var result = [];
    for (var i = 0; i < this.methods.length; i++) {
        if (elementId === this.methods[i].methodElement) {
            result.push(this.methods[i]);
        }
    }
    return result;
}

, что сделало мой код медленным.

Мой вопрос: как представить эту реляционную структуру в javascript для более профессионального кода и более быстрой обработки?

Ответы [ 2 ]

1 голос
/ 28 мая 2009

Я никогда не пробовал это сам, но люди написали библиотеки LINQ-esque для JavaScript, например JSINQ . (Эта страница также ссылается на другие библиотеки JS LINQ внизу страницы.)

В нем утверждается, что вы можете "писать произвольно сложные запросы к массивам JavaScript, спискам узлов DOM или вашим собственным перечисляемым типам", что звучит так, как вы хотите.

0 голосов
/ 31 мая 2009
function Element() {
this.id;
this.type;
this.methods = new Array();

}

function Method() {
    this.id;
    this.methodType;
    this.methodData;
    this.methodElement;
    this.methodRank;
}
...