А вам точно отдельно нужно знать, сколько и каких всего было ингредиентов и блюд было заказано? А то если не нужно — можно эти данные смело сериализовывать и совать в Orders в свой столбец.
Вот читаю я ответы… Воистину, сколько людей, столько и мнений! Придётся вам всёж самому выбирать :) тем более что один человек может рассказать лишь про вуз, в котором сам учился, но обычно мало кто может сравнить с другими. Сейчас вы получите несколько «одинаково» положительных (в кавычках, ибо они не одинаковы, но фактическая полезность примерно равна) отзывов, но за вас никто не скажет, куда же всё-таки лучше.
Ну а кому то покажется удобней так) Фактически иллюзия того, что вызываешь функцию нужную тебе здесь же. Прозрачно очень — вообще не приходится задумываться о клиент-серверной архитектуре. В общем, это как со всеми технологиями — кому то они не нужны, кто-то просто их не любит, а кто-то использует. Вы не используете — предпочитаете REST — ну а кто нибудь точно так же не использует REST а использует Ext.Direct, вот и всё.
Смотря что. Например какой нить ajax-нутый заменитель phpmyadmin, где сначала много щелкаешь кнопками и вводишь всяких данных, и ток потом один результат отсылаешь по кнопке «выполнить» — вот для таких предложений подойдёт. Всякие конфигураторы, настройки профилей, редакторы постов на форумах… ИМХО опять таки.
Дефакто Комет — это не более, чем два соединения, одно из которых long pooling, а второе — устанавливается в случае необходимости для передачи Инфу от клиента к серверу. Их при желании можно и вручную на уровне советов прокинуть, но зачем? ) принцип в том, что javascript открывает два этих коннекта с помощью ajax. Никакой разницы не будет, если вы их же откроете напрямую, без ajax-а — серверу в общем случае пофиг, ajax к нему присосался или прямой коннект (если вы только проверку жестко не захардкодили). Реализация на сервеиной стороне вообще никак отличаться не будет.
Собственно в плане вашей структуры. Клиенты подключаются к вашему серверу в long pooling режиме и держат коннект открытым (обновляя скажем ежеминутно). Если хотят чего то обновить открывают второй коннект к вашему серверу, пересылают данные. Сервер видит что чтото обновилось и рраз — по первому коннекту весело пересылает данные. Коннект закрывается, клиент переподключает первый коннект.
Вот именно об этих костылях я и говорил когда говорил про полнодуплексность.) Учтите такую вещь — http пустят 99% проксиков. Ваш — это как посмотреть… Ну и в плане реализации помоему лучше привинтить всякий long pooling и иные кометообразные костыли, чем заморачиваться с прямой работой с советами.
Да, конечно, это не полный дуплекс, но я не представляю, что за задачу вам реализовать надо, что полудуплекса не хватит. Хотя при желании можно и из этого полный дуплекс сделать, правда немного костылясто.