|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
Размышляю над взаимодействием учетной системы (УС) с сайтом, пока только в части Каталога. Условно типы каталогов я разделю на: -Одноуровневый – единый список Товаров, без папок-директорий. -Двухуровневый – организована структура Директорий, а в них необходимые Товары. -Трехуровневый – то же, что и второй, только некоторые позиции каталога (назовем их Модели), имеют разные Исполнения (Товары-Исполнения), что в разных УС называют по разному: “учет по характеристикам” в 1С и др. Аналогично каталог сайта также может быть отнесен к одному из вышеперечисленных типов. Если каталог сайта полностью соответствует каталогу УС, то я, скорее всего, данный топик бы и не создавал. Меня интересует более сложный случай , когда каталог сайта является модификацией основного каталога УС как по структуре (!) , так и количеству товаров. И т.о., ставится задача: как управлять в этом случае структурой и составом каталога сайта из УС. Для 2-х уровнего типа я эту задачу уже решал для связки RS-Balance-2 и сайта системы Amiro. В RS-Balance-2 можно создать на базе основного каталога различные модификации (прайсы) иной структуры . В прайсе, предназначенном специально для сайта, создаем новую структуру директорий, аналогичную сайту, и наполняем ее товарами. А затем – экспорт-импорт товаров в сайт. Пока мне не довелось встречать решения подобной задачи в УС для 3-х уровневого каталога. Может кто подскажет, либо сталкивался с такой задачей? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2012, 08:40 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
erpdm, каждый товар может иметь N признаков (категорий, характеристик). каждый признак входит в определенную группу. каждая группа имеет иерархию с произвольной структурой вложенности. 99% всех ситуаций можно свести к этой схеме. а если начинать делать так, как вы описали, обязательно столкнешься с ситуацией, что имеется 4,5 и тд уровень вложенности, который не был предусмотрен изначально, а он нужен и срочно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2012, 11:35 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
erpdmМеня интересует более сложный случай , когда каталог сайта является модификацией основного каталога УС как по структуре (!) , так и количеству товаров. И т.о., ставится задача: как управлять в этом случае структурой и составом каталога сайта из УС. откуда на сайте информация о ТМЦ ? - из базы. возможно два варианта: 1) симметричная УС, когда к базе УС коннектятся не только изнутри при проведении хозяйственных операций, но и со стороны сайта. 2) репликация из базы УС в базу сайта. делал так: 1) есть на сайте скрипт, который формирует страницу. он требует параметры, например имя группы ТМЦ с путями для вывода , уточняющими характеристиками и т.д. 2) apache mod_rewrite превращает эту кучу параметров в якобы каталоги. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2012, 23:02 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinov99% всех ситуаций можно свести к этой схеме какой схеме, - 2х-уровневой? Согласен. Сам пришел к мнению, что 2-х уровневый каталог на сайте универсален. Туда можно все уложить. Однако, если в УС основной каталог 3-х уровневый, а на сайте 2-х уровневый, то при УС неплохо иметь промежуточный каталог (как модификация основного), который экспортируется в сайт (что я и сделал для случая 2 -> 2 с изменением структуры). s_ustinovа если начинать делать так, как вы описали, обязательно столкнешься с ситуацией, что имеется 4,5 и тд уровень вложенности, который не был предусмотрен изначально, а он нужен и срочно. "Нужен и срочно" где: в УС или на сайте? Если для сайта, то в моей схеме ч/з промежуточный каталог как раз это для сайта оперативно решается, не трогая основного каталога. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 08:47 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
PEAKTOP2) репликация из базы УС в базу сайта. Полагаю, что в данном случае речь идет о полном соответствии каталогов УС и сайта? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 08:49 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
erpdms_ustinov99% всех ситуаций можно свести к этой схеме какой схеме, - 2х-уровневой? нет неограниченное количество классификаторов (деревьев иерархий), каждое из которых имеет неограниченное количество уровней вложенности реализовать это относительно несложно (если с самого начала), а потом избавляет от множества проблем с расширением функционала сайта ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 10:21 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinoverpdmпропущено... какой схеме, - 2х-уровневой? нет неограниченное количество классификаторов (деревьев иерархий) , каждое из которых имеет неограниченное количество уровней вложенности реализовать это относительно несложно (если с самого начала), а потом избавляет от множества проблем с расширением функционала сайта это в УС, или в сайте? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 10:57 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
erpdms_ustinov неограниченное количество классификаторов (деревьев иерархий) , каждое из которых имеет неограниченное количество уровней вложенности это в УС, или в сайте? а вы что, УС пишите? я про сайт говорил такая схема данных позволяет без проблем интегрироваться почти с любой учетной системой ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 11:38 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinoverpdmпропущено... это в УС, или в сайте? а вы что, УС пишите? я про сайт говорил такая схема данных позволяет без проблем интегрироваться почти с любой учетной системой а что это за cms, если не секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 12:05 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
erpdmа что это за cms, если не секрет? это не cms. такую вещь несколько лет назад делал один из моих знакомых и я даже точно не знаю на чем. вроде бы php + mysql, но не уверен. как раз на этом примере он объяснял, как с помощью sql можно работать с иерархиями, причем без особых проблем и тормозов. но там надо было жертвовать нормализацией - одна или несколько лишних (дополнительных) таблиц, уже точно не помню ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 13:24 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinov, т.е. это пока еще только идея, но в массы она еще не пошла? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 13:35 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
продолжу вопрос. А живая реализация этой идеи есть? т.е. сайт, который можно посмотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 13:39 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
erpdmА живая реализация этой идеи есть? т.е. сайт, который можно посмотреть? Это делалось для какого-то веб-магазина, и оно работает (по крайней мере работало несколько лет назад) - я не интересовался, для какого именно, а сейчас уже спросить не получится (контакты потерялись). но думаю найти живой пример не составит проблем - в любом магазине, где товар можно найти несколькими путями и есть иерархии в классификации. например здесь: http://www.amazon.com/jewelry-watches-engagement-rings-diamonds/b/ref=sa_menu_jewelry13?ie=UTF8&node=3367581 там слева несколько категорий поиска (иерархий), которые вроде могут иметь несколько уровней вложенности. в том примере, про который мне рассказывали, было неограниченное количество уровней вложенности для каждой возможной классификации. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 14:28 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinov, да, ты привел классический пример сайта с многоранговым поиском. Но расшифровать его, как там может делаться интеграция с УС, я не смогу… Мне кажется, следует хотя бы понимать различия между видом каталога и возможностями поиска по сайту. Поэтому я бы разделил вопросы по каталогу сайта пока на две группы: 1) вид представления каталога (а я, собственно, пока только это и имел ввиду); 2) свойства товаров (общие и для определенной группы), которые используются в дальнейшем в поиске. (та же упомянутая мною система Амиро имеет эти возможности) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 15:38 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
erpdmВ RS-Balance-2 можно создать на базе основного каталога различные модификации (прайсы) иной структуры. erpdm1) вид представления каталога (а я, собственно, пока только это и имел ввиду); 2) свойства товаров (общие и для определенной группы), которые используются в дальнейшем в поиске. (та же упомянутая мною система Амиро имеет эти возможности) если некую группу свойств товаров можно представить в виде списка (иерархического или нет - не важно), то какая принципиальная разница между упомянутыми тобой сущностями? все вышеперечисленное - это фактически одно и то же - способ классификации некоторого множества товаров. можно, разумеется, разделять и создавать отдельные механизмы для "вид представления каталога" и "свойств товаров" - но зачем? не лучше ли поработать бритвой? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 15:49 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinov, спасибо за диалог. Будем размышлять далее... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2012, 15:55 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
erpdms_ustinov, т.е. это пока еще только идея, но в массы она еще не пошла? стандартная идея... так же, как и реализация три таблицы максимум, можно и в две уложиться одно-, двух-, трех-уровневый... какая ф ... разница? стандартный иерархический справочник, с неограниченным количеством иерархий, для особых извращенцев гурманов можно и количество справочников не ограничивать ничем если вы уж упомянули 1С - посмотрите, как это сделано там ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2012, 17:44 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
Chopстандартная идея... так же, как и реализация три таблицы максимум, можно и в две уложиться там есть некоторые нюансы. например - получить список всех товаров, которые входят в некоторую группу (а в ней куча подгрупп и глубина вложенности не ограничена). нужно, например, чтобы считать серые циферки напротив других признаков (на амазоновском сайте) - сколько товаров будет, если выбрать еще и это условие - пересечение двух множеств. средствами sql это напрямую не реализуется, а хранимыми процедурами - может получиться недопустимо долго и нагрузка на сервер большая. там надо делать дополнительные таблички и хранить дополнительную (дублирующую) инфу - нормализация нарушается, но проще получать нужный результат. для тех, кто этим занимается, все стандартно и просто, а если первый раз с этим сталкиваешься - много нюансов, которые с первого взгляда не очевидны. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2012, 23:19 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinovChopстандартная идея...там есть некоторые нюансы.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2012, 09:50 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
Chopбез всяких дополнительных табличек и "нарушений нормализации" если для записи новых или модификации существующих записей необходимо использовать триггеры, которые будут модифицировать другие записи (перемещение узла по дереву) - данные не нормализованы (есть избыточность) - целостность данных лежит на пользователе. именно об этом я и писал. мне примерно так и объяснял человек, как это описано в упоминаемых статьях. Chopпочему вы противопоставляете "прямы средства SQL" и "хранимые процедуры"? по вашему хранимые процедуры не прямые? :) переносимость между разными СУБД не очень. опять же, далеко не все СУБД поддерживают все нужные возможности (вроде у mysql была или и сейчас есть эта проблема). а обычный селект сработает в любой субд. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2012, 13:45 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinovChopбез всяких дополнительных табличек и "нарушений нормализации" если для записи новых или модификации существующих записей необходимо использовать триггеры, которые будут модифицировать другие записи (перемещение узла по дереву) - данные не нормализованы (есть избыточность) - целостность данных лежит на пользователе. именно об этом я и писал. мне примерно так и объяснял человек, как это описано в упоминаемых статьях. какая-то ахинея... при перемещении узла по дереву в схеме [id-pid] никакие другие записи не модифицируются, только та, которая перемещается, о контроле целостности голова болит у движка БД скажу как на духу - никогда не использовала триггеры, для контроля целостности всегда хватало "штатных средств", если же целостность завязана на бизнес-логике, то предпочитаю ее контроллить не в БД, не люблю бизнес-логику в БД :) а в MySQL и хранимые процедуры не использовал, хотя можно было :) s_ustinovChopпочему вы противопоставляете "прямы средства SQL" и "хранимые процедуры"?переносимость между разными СУБД не очень. опять же, далеко не все СУБД поддерживают все нужные возможности (вроде у mysql была или и сейчас есть эта проблема). а обычный селект сработает в любой субд.а что же вы хотели? у всех БД свои приколы об "обычном селекте" вам тоже соврали - не перенесете вы "обычный селект" между разными СУБД :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2012, 16:09 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
Chopкакая-то ахинея... при перемещении узла по дереву в схеме [id-pid] никакие другие записи не модифицируются, только та, которая перемещается, о контроле целостности голова болит у движка БД все правильно но есть один маленький нюанс читаем упомянутую выше статью: Деревья в SQL о схеме [id-pid]: Очевидно, что при такой организации таблицы, с помощью одного SQL запроса можно извлечь только определенное число дочерних уровней. ... Если высота дерева заранее неизвестна , то для извлечения всех узлов поддерева, для которого заданный узел является вершиной, придется создать рекурсивную процедуру . поддержки же рекурсии у некоторых субд нет до сих пор, ее ввели вроде только в sql99 (и вроде бы у mysql ее и сейчас нет, а на ней куча сайтов) и я не могу утверждать с полной определенностью, но мой знакомый, когда описывал мне все эти вещи (речь шла о ситуации 5 лет назад, сейчас может все поменялось), упоминал, что с рекурсивными процедурами, которые есть в субд, есть еще две проблемы: 1. для деревьев с большой глубиной часть запросов может отрабатываться слишком медленно, и проконтролировать заранее не получается 2. есть проблемы, когда структура дерева сложная - например группа может входить в несколько других групп одновременно (холодильники - это и кухонная техника и крупная бытовая техника) и группа верхнего уровня будет включена в одну из своих подгрупп (бесконечный цикл) - например менеджер ошибся при переделке прайса а если работать с деревьеми неограниченной глубины без рекурсивных процедур - надо добавлять дополнительные данные - появляется избыточность (денормализация). в упомянутой выше статье это описано. Chopоб "обычном селекте" вам тоже соврали - не перенесете вы "обычный селект" между разными СУБД :) опять же - можно пример "обычного селекта" (sql89), который не заработает на любой из распространенных современных рсубд? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2012, 20:49 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
s_ustinovо схеме [id-pid]: Очевидно, что при такой организации таблицы, с помощью одного SQL запроса можно извлечь только определенное число дочерних уровней. ... Если высота дерева заранее неизвестна , то для извлечения всех узлов поддерева, для которого заданный узел является вершиной, придется создать рекурсивную процедуру .поддержки же рекурсии у некоторых субд нет до сих пор...а что же вы хотели? деревья и без рекурсии? :) я таких вариантов (нормальных) не знаю s_ustinov1. для деревьев с большой глубиной часть запросов может отрабатываться слишком медленно, и проконтролировать заранее не получается на самом деле... страшилки "будет отрабатываться медленно" - всего лишь страшилки в том же php+MySQL реализуется и без поддержки рекурсии в СУБД при размере БД в несколько тысяч записей время отработки вполне приемлимое вот если у вас будут сотни тысяч записей в десятке-сотне таблиц... тогда таки да... придется ставить какие-то ограничения - время жизни php-скрипта по умолчанию 30 сек., это можно изменить, если есть доступ к серверу, но браузер пошлет ф попу через 50, если не дождется ответа :) все загнется и безо всяких деревьев и рекурсий а так... сколько там у вас того прайс-листа? пара-тройка тысяч, пусть десяток тысяч максимум... сколько записей у вас поместиться на экран монитора? максимум полсотни зачем вам выгружать сразу все несколько тысяч? 5000 записей jQuery jqGrid с использованием пагинатора успевает построить хоть в таблицу, хоть в дерево 1000 - успевает построить даже в ИЕ больше - не проверял, не было нужды s_ustinov2. есть проблемы, когда структура дерева сложная - например группа может входить в несколько других групп одновременно (холодильники - это и кухонная техника и крупная бытовая техника) и группа верхнего уровня будет включена в одну из своих подгрупп (бесконечный цикл) - например менеджер ошибся при переделке прайсаэти проблемы состоят исключительно в кривых руках прога, который это напишет :) s_ustinovа если работать с деревьеми неограниченной глубины без рекурсивных процедур - надо добавлять дополнительные данные - появляется избыточность (денормализация). в упомянутой выше статье это описано.не надо ничего денормализировать, юзайте рекурсию, при небольших объемах время обработки вас вполне устроит, при больших - загнется и без деревьев и рекурсий если есть желание еще ускорить процесс, избежать рекурсии и не нравится пагинатор - подгружайте каждую ветку дерева динамически по аяксу, т.е. вначале выводите только один уровень дерева, и лишь по дополнительному запросу - любой выбранный следующий один Код: plsql 1. 2. 3.
и никаких рекурсий s_ustinovChopоб "обычном селекте" вам тоже соврали - не перенесете вы "обычный селект" между разными СУБД :)опять же - можно пример "обычного селекта" (sql89), который не заработает на любой из распространенных современных рсубд?да и без примера - как только напишете LIMIT/TOP/FIRST/ROWS - фсе, кырдык, ваш запрос привязан к конкретной СУБД а можно еще CAST вспомнить, можно еще повспоминать... или это по вашему будет уже не обычный селект? :) для " кроссбаззности " мужно узать DataBaseAdapter-ы различных php-фреймворков (если это php) но на самом деле... разве перед вами стоит задача написать софт, который будет работать с любой БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2012, 10:01 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
NZavaloffОднако, если в УС основной каталог 3-х уровневый, а на сайте 2-х уровневый, то при УС неплохо иметь промежуточный каталог (как модификация основного), который экспортируется в сайт (что я и сделал для случая 2 -> 2 с изменением структуры).самое главное в этом случае - иметь быстрообучаемую обизяну оператора, который будет получать зарплату за ввод и сверку "промежуточного каталога" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2012, 14:15 |
|
Интеграция учетной системы с сайтом
|
|||
---|---|---|---|
#18+
NZavaloffОднако, если в УС основной каталог 3-х уровневый, а на сайте 2-х уровневый, то при УС неплохо иметь промежуточный каталог (как модификация основного), который экспортируется в сайт (что я и сделал для случая 2 -> 2 с изменением структуры ). пришел к такому же решению (что я вначале и показал) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 18:42 |
|
|
start [/forum/topic.php?fid=29&fpage=11&tid=1526079]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 233ms |
total: | 393ms |
0 / 0 |