Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нужен совет.
|
|||
|---|---|---|---|
|
#18+
Всем добрый день! Вопрос больше про проектирование БД, но все же спрошу здесь т.к. все это в любимом ASA. ASA 7.0.4 Имеем различные предложения от поставщиков товара в виде периодически присылаемых или закачиваемых файлов. Файлы естественно разного формата от разных поставщиков(dbf, csv, xls и т.д.). Колонки в файлах то же конечно по разному названы, ну я думаю, все знакомы с ситуацией полного разношерстия. Единственное поле данные, которого унифицированы у всех поставщиков - название товара. Некоторые поставщики присылают одной из колонок код товара в своей системе(большое им спасибо!!!, очень помогает при обновлении, см ниже). Что нужно? Построить некую поисковую систему, чтобы пользователь, вводил поиск товара по названию(шаблону) и получал предложения по товарам попадающих под критерий поиска из всех предложений поставщиков. Что сделано сейчас? Все файлы подключены к ASA через прокси таблицы. При получении нового предложения соответсвующий файл заменяется на новый. В базе создана одна унифицированная таблица для всех товаров всех поставщиков. Индекс по полю Наименование. Сами понимаете, делать запросы к прокси-таблицам - быстродействие нулевое, записей по всем предложениям больше 1 млн. Для каждого файла поставщика написана процедура для обновления из прокси таблицы в эту универсальную таблицу. Для тех предложений, где есть код товара от поставщика обновление по коду, где нет кода: удаление всех записей(логическое, просто в одно поле признак ставиться. Физическое удаление (delete from) ночью в планировщике.), далее вставка новых записей. После размещения нового файла запускается эта процедура. Пользователи работают с поиском через web-интерфейс, вводят в форме строку поиска, им выдается табличка результатов. Все работает пока нормально с высоким быстродействием. Вот так, вкраце конечно, не стал расписывать остальное, там много чего сделано. Но все же что-то меня смущает в моей схеме. Может я велосипед изобрел? Может уже в мире такие дела делаются более красиво? Я сам не проектировщик БД, эксплуататор так сказать, просто накрутил все это своими силами в базе системы учета компании. Покритикуйте, готов уточнить информацию. Поделитесь, как у кого реализован подобный сервис в базе или вообще в системе компании. Конечно интересует именно с точки зрения базы и системных механизмов, а не пользовательского интерфейса. Повторю, что интересует именно ASA, в том числе более поздних версий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2006, 14:26 |
|
||
|
Нужен совет.
|
|||
|---|---|---|---|
|
#18+
Привет! у нас похожая ситуация, реализовано так! Все файлы от разных поставщиков грузятся в буферную таблицу. (Одно но, каждый поставщик имеет свой ID (есть справочник поставщиков, где и прописано как нужно грузить его файлы - есть поле где и прописано как нужно грузить файлы того или иного формата)) ID прописан в названии файла. Потом есть универсальная собственная таблица с товарами (pkey,название ....) После загрузки данных в буферную таблицу запускаем процедуру разнесения товаров. Другими словами идет сопоставление собственного справочника товаров с справочниками поставщиков. Все это пишеться в опеределенную таблицу, где просто идет связка (наш pkey товара) -> (ID постав., pkey товара) При первой загрузке нужно все сопоставить(INSERT если товара нету в справочнике ). А дальше при загрузке просто Update. Работает довольно шустро. У нас в отличии от вас у разных поставщиков один товар может называться по разному, вот мы его и приводим к одному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2006, 15:07 |
|
||
|
Нужен совет.
|
|||
|---|---|---|---|
|
#18+
Ser4gПривет! у нас похожая ситуация, реализовано так! Все файлы от разных поставщиков грузятся в буферную таблицу. (Одно но, каждый поставщик имеет свой ID (есть справочник поставщиков, где и прописано как нужно грузить его файлы - есть поле где и прописано как нужно грузить файлы того или иного формата)) ID прописан в названии файла. Потом есть универсальная собственная таблица с товарами (pkey,название ....) После загрузки данных в буферную таблицу запускаем процедуру разнесения товаров. Другими словами идет сопоставление собственного справочника товаров с справочниками поставщиков. Все это пишеться в опеределенную таблицу, где просто идет связка (наш pkey товара) -> (ID постав., pkey товара) При первой загрузке нужно все сопоставить(INSERT если товара нету в справочнике ). А дальше при загрузке просто Update. Работает довольно шустро. У нас в отличии от вас у разных поставщиков один товар может называться по разному, вот мы его и приводим к одному. Спасибо! Утешили, что не я один такой. На самом деле у меня тоже как у Вас буферная таблица и сопоставление при загрузке и коды поставщиков, коды производителей. + У меня в отдельной таблице ведется учет предложений поставщиков, т.к. их может быть несколько от одного. И вот в этой таблице и расписаны правила загрузки, сроки действия для каждого предложения и т.п. Для пользователей написан web-интерфейс на PHP, они через внутренний сайт поиском занимаются(у нас филиалы по всей стране, сайт в Москве), + сделан выход на эту поисковую систему из корпоративной системы учета(она на в той же базе крутится). Ну еще сделан выход из этой системы на сайты поставщиков и производителей по каждому товару, чтобы самую свежую инфу смотреть. Я это все не сразу написал, т.к. интересует именно технология работы с внешними данными в ASA. Я просто всего этого не расписал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2006, 15:20 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34029048&tid=2012537]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 434ms |

| 0 / 0 |
