|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Господа, проясните ситуацию: разработал сайт с объявлениями (скоро выложу) разработал программу приема объявлений для конторы, которая принимает объявления и пересылает мне для проверки и загрузки на сайт Внимание, вопрос: появились еще две организации, которые хотят размещать свою информацию на сайте я вот сейчас в думках в базе данных организаций есть справочники и на сайте тоже Как их поддерживать в однородном состоянии? генерить уникальный идентификатор для каждого элемента справочника? можно, но проблема еще в том, что на каждый созданный элемент справочника я собираю информацию и помещаю ее в БД Возьмем к примеру автообъявления: Два справочника Фирма-производитель IDFirm Name Модель авто ID IDFirm Name MyComment Дело в том что я физически не смогу сам заполнить справочники, поэтому придется доверить это дело "профессионалам" (девочкам, которые ничего кроме как быстро печатать не умеют) и может получиться такая ситуация, что одновременно в разных БД появятся например: ФИРМА-ПРОИЗВОДИТЕЛЬ Toyota МОДЕЛЬ Mark II ФИРМА-ПРОИЗВОДИТЕЛЬ ТОЙОТА МОДЕЛЬ МАРК 2 Что с ними делать? PS: Извините за слишком длинный пост, наболело... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 09:19 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Организация IDOrg Name Telephone Address Фирма-производитель IDOrg IDFirm Name Модель авто ID IDOrg IDFirm Name MyComment ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 09:22 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Ну ладно, этот вариант я отмел потому, что будет задвоенность на сайте к примеру нужно будет выбрать все автомобили марки TOYOTA все модели TOYOTA Mark II тогда туда не попадут объявления все автомобили марки ТОЙОТА все модели TOYOTA МАРК 2 конечно, я не ставлю своей целью создать единую БД всех авто и прочей продаваемой техники, но в пределах города и даже области наверное можно это реализовать, но как быть с задвоенностью? Надо же тогда с контор собирать справочники делать единственно правильный вариант справочников потом отдавать им, но тогда у них порушатся все связи в этом пространстве Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
или для каждой конторы писать свой конвертер и каждый раз его компилить при изменении справочника? а у них ничего не трогать ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 09:37 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
да и самое главное еще же есть таблица Собственно объявление ID IDModel //идентификатор модели продаваемого авто Telephone Price **** и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 09:41 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
а справочники у всех изначально разные и ведут их разные люди? Тогда боюсь это будет один большой геморой... По большому счету справочник должен вести один человек или одна вполне конкретная группа... и то придется возможно вводить проверки... а тут... ведь человек может попросту опечататься.... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 09:57 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
изначально я поставляю заполненные справочники фирм производителей и моделей авто но к примеру звонит продавец с РОЛЛС-РОЙСом и просит принять его объявление а такой модели и фирмы производителя нет, варианты которые я увидел: 1. принять объявление в раздел "разное" :-(( 2. принять объявление, создать нужный раздел и принять объявление 3. сообщить мне, чтобы я внес его в справочник, переслал в контору и потом спокойно принимать объявления самый "классный вариант" для меня - третий самый "классный вариант" для продавца - третий самый "классный вариант" для конторы - второй дырка первого в том, что классификатор сайта найдет это объявление только в разделе разное дырка 2 варианта в том, что девочка может не знать, а скорее всего точно, не знает, как провильно пишется РОЛЛС-РОЙС, хотя честно говоря я навскидку и сам не скажу :-)) дырка третьего варианта в том, что клиент будет потерян Кто-нибудь видит еще варианты? PS : нажал "Предварительный просмотр", прочитал - и подумал, а что если правда сделать так: пусть пишут в "разное", отправляют мне, я создам раздел, и разошлю всем конторам новые справочники? а может быть так и делают? Буду рад услышать Ваше мнение, Уважаемые ГУРУ! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 10:46 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Groove, мнение простых людей, Вам, значит, не интересно, Вам мнение патриархов подавай... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 11:29 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Хороший вопрос. У меня по этому поводу 2 мысли. 1. Если девушки вводят данные через какую-то одну программу, надо особое внимание уделить интерфейсу этой проги и обучению операторов. К примеру, при создании новой товарной группы или вводе марки машины программа проверяет сходные по написанию названия, предлагает еще раз просмотреть список товаров данной группы, и.т.п, то есть создается некий "искуственный интеллект", помогающий справится с отсутствием интеллекта (или невнимательностью) операторов. 2. Справочники ведут квалифицированные люди. Операторы могут только Выбирать, а не вводить элементы справочника. Время от времени обновленный справочник поступает в каждую из обслуживаемых контор, и обновляется. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 11:57 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
2Varan Ну что Вы! Просто я вас всех назвал ГУРУ! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 12:01 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Самый лучший, по-моему, вариант такой. Операторы в конторах не имеют права создавать новые разделы. При появлении информации, которую нельзя отнести к имеющимся разделам, ее относят к какому-то специальному разделу (пусть Разное). Все конторы скидываются, и нанимают одного квалифицированного оператора (РЕДАКТОР). Редактор просматривает все объявления до их публикации, особое внимание уделяя разделу "Разное", создает новые разделы, и.т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 12:07 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Гм.. Походу им придется опять меня нанимать... (вакансия РЕДАКТОР) Им же не обязательно знать, что я им впарил один и тот же продукт :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 13:11 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Одно из решений - завести понятие синонима. То есть сказать, что вот эти два пункта из разных справочников (или из одного справочника, но пришедшие от разных эмитентов) суть одно. И затем пользоваться этим справочником синонимов при загрузке данных от разных эмитентов, дабы на сайте был один справочник без повторений. Естественно, решение о синомимичности двух пунктов - дело эксперта. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 14:40 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Уважаемый Павел Воронцов А можно поподробнее о предлагаемом механизме? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 15:12 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Один хрен - "эксперта" сажать (вернее, нанимать). Вот и весь механизм. Нельзя в публичном деле без редактора - вот и весь сказ. А без "эксперта" у тебя эту объяву про "Роллс-Ройс" могут поместить в раздел "продажа мебели", к примеру. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 15:21 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Павел Воронцов прав. Исходим из общего соображения что человек, который будет править ошибки все равно должен быть. Иначе все поедет несмотря ни на какое программирование. Заведется ТОЕТА, ТОЁТА итп. В одной такой базе был город Кострома написанный тремя (!) разными способами. Объяснить дуре которая сидит и принимает заказы правила русского языка невозможно. Стало быть, человек нужен. Алгоритм такой : Добавляем флаг "согласовано" обозначающий что данный вариант, скажем, TOYOTA есть истина в последней инстанции. Добавляем поле "AKA" - синоним. Бизнес-правило : то на что ссылается это поле должно иметь флаг "согласовано". То есть ТОЙОТА это синоним слова TOYOTA. Конторы могут добавлять свои названия, но не могут менять или удалять "согласованные". При добавлении новых в поле AKA прописывается ID. При приеме заявок : выделенный для этого человек смотрит список мутным взором и ежели замечает там слово ТОЙОТА, переставляет ссылку в AKA на правильный вариант. Если же находит там ROLLS-ROYCE, то ставит отметку "согласовано". И отдает этот вариант обратно. При показе делается join через ту же самую таблицу и показывается один, согласованный вариант. В конторе показываются в списке для выбора только те варианты, у которых АКА==ID, то есть либо согласованные, либо только что добавленные. На поле имени есть уникальный индекс, так что второй раз на те же грабли конторе наступить не удастся. Надо только сделать внятное сообщение об ошибке. ID AKA NAME 1 1 JEEP 2 1 ДЖИП ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 16:28 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Web-решение (как вариант работа клиента через Web-сервисы), судя по всему, вы уже рассматривали? У клиентов может не быть интернета? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 17:55 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
интернет у них конечно есть, но все сильно жмутся. а иначе бы не возникало проблем, по крайней мере у меня, а вот у них не уверен. Им тоже нужна БД,каждому своя и каждый раз обращаться, хоть и к правильной , но удаленной БД, им не хочется... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2003, 07:06 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
у меня друг как раз на таком специализируется. У него есть система для выявления подобия в справочных данных, именно для такого случая. Американские компании это юзают для приведения в порядок своих данных. Если есть финансовая заинтересованность - пишите на мое мыло, я ему скину. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2003, 08:52 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Уважаемый vdimas ! > у меня друг как раз на таком специализируется. У него есть система для выявления подобия в справочных данных, > именно для такого случая. Американские компании это юзают для приведения в порядок своих данных. > Если есть финансовая заинтересованность - пишите на мое мыло, я ему скину. Большое спасибо, конечно. Но как то наверное неправильно с провинциальной задачей справляться методами, которые применяются в проектах Вашего друга, для решения американских заказов? И что есть по Вашему финансовая заинтересованность ? Купить его идею? Думаю у меня денег не хватит... Хотя узнать хочется... Только не подумайте, что я не желаю делиться, нет, ни в коем случае... Хотя собственно и делиться то пока нечем :-(( { Они мне данные из своей БД Я им рекламу в интернете } Я это делаю исключительно для самосовершенствования, честно говоря не уверен, что в нашем халявном инете можно заработать на сайте... За разработку взять можно, а на содержание , - увы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2003, 09:25 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
2 Groove: \r Дело в том что я физически не смогу сам заполнить справочники, поэтому придется доверить это дело "профессионалам" (девочкам, которые ничего кроме как быстро печатать не умеют) \r и может получиться такая ситуация, что одновременно в разных БД появятся например: \r ФИРМА-ПРОИЗВОДИТЕЛЬ Toyota \r МОДЕЛЬ Mark II \r \r ФИРМА-ПРОИЗВОДИТЕЛЬ ТОЙОТА \r МОДЕЛЬ МАРК 2 \r \r Что с ними делать? \r \r На самом деле рамки допустимого бардака в справочнике (БД) должен определять заказчик системы в требованиях к этой системе. Если бы вы их указали точно , то можно было бы говорить конкретнее\r \r Если "заказчик" вы сам, т.е вы продаете систему, к-рую спроектировали по своим же требованиям, то вы и должны решать насчет дублирующихся по смыслу названий. Тогда вы имеете полное право (кстати, это выглядит абсолютно естественно) предлагая свою систему указать в документации, что, например, ...бла-бла..названия фирм-производителей только на одном языке..дабы не было дублирования...".\r Если заказчик не вы, то это другое дело и тогда следует выяснить его требования, но даже в этом случае вы можете рассчитывать на некий минимальный общечеловеческий умственный и уровень ответственности тех, кто будет работать со справочником. Потому что абсолютной защиты от дурака не существует. В мире существуют многие тысячи разных электронных справочников и IMHO наврядли хотя бы в 1% из них есть такие интеллектуальные антибардачные механизмы\r \r Так что вы в любом случае зря занимаетесь творчеством по поводу интеллектуальных антибардачных механизмов - заказчик просто не оценит, а вы время потратите. Хотя опыт может пригодиться в будущем.\r Теперь вдобавок к тому, что уже тут высказали, если исходить из неких возможных требований:\r \r Вариант 1. \r Требования:\r 1. Названия фирм-производителей, означающих одну и ту же фирму недопустимы \r в справочнике.\r 2. Все названия фирм-производителей в справочнике - только на одном языке \r (например, русском).\r 3. Справочник должен предоставлять пользователю возможность выбора из уже имеющегося\r списка фирм-производителей прежде, чем он добавит новое название.\r ---\r Решение:\r создать интерфейс пользователя и валидатор для вводимых в справочник названий фирм-производителей, чтобы вводимые названия удовлетворяли требованиям 1-3. Такой валидатор на стороне БД/клиента - очень простая вещь\r \r Вариант 2. \r Требования:\r 1. Названия фирм-производителей, означающих одну и ту же фирму недопустимы \r в справочнике.\r 2. Все названия фирм-производителей в справочнике - только на одном языке \r (например, русском).\r 3. Справочник должен предоставлять пользователю возможность выбора из уже имеющегося\r списка фирм-производителей прежде, чем он добавит новое название.\r 4. Справочник должен "отлавливать" похожие названия , означающие\r одну и ту же фирму-производитель.\r Критерии похожести названий: .........например, пусть похожими считаются названия типа:\r "TOYOTA" и "TAYOTA" , "MERCEDES-BENZ" и "MERSEDES-BENS" , "VOLKSWAGEN" и "FOLKSVAGEN"..\r - т.е у похожих названий отличаются макс.на 1-2 буквы.\r ---\r Решение: \r создать интерфейс пользователя и валидатор для вводимых в справочник названий фирм-производителей, чтобы вводимые названия удовлетворяли требованиям 1-4. Такой валидатор на стороне БД/клиента - вещь, простота к-рой зависит от критериев похожести названий. Если взять те критерии, что выше, то валидатор достаточно прост поскольку есть различные библиотеки таких функций. В TSQL есть те же soundex() и difference()\r \r Вариант 3. \r Требования:\r 1. Названия фирм-производителей, означающих одну и ту же фирму допустимы \r в справочнике: 1 название на английском и 1 название на русском языке.\r 2. Все названия фирм-производителей в справочнике - на русском \r и английском языках.\r 3. Справочник должен предоставлять пользователю возможность выбора из уже\r имеющегося списка фирм-производителей прежде, чем он добавит новое название.\r 4. Справочник должен "отлавливать" похожие названия , означающие одну\r и ту же фирму-производитель, если эти названия на одном языке.\r Критерии похожести названий: .........например, пусть похожими считаются названия типа:\r "TOYOTA" и "TAYOTA" , "ТОЙОТА" и "ТАЙОТА" , "VOLKSWAGEN" и "FOLKSVAGEN"...\r - т.е у похожих названий на английском или русском языке отличаются макс.на 1-2 буквы.\r ---\r Решение: \r создать интерфейс пользователя и валидатор для вводимых в справочник названий фирм-производителей, чтобы вводимые названия удовлетворяли требованиям 1-4. См. Вариант 2. Интерфейс: в режиме просмотра справочник показывает название, например, в виде "TOYOTA / ТОЙОТА", в режиме редактирования используются 2 поля с валидацией данных, вводимых на том или ином языке\r \r изначально я поставляю заполненные справочники фирм производителей и моделей авто \r \r но к примеру звонит продавец с РОЛЛС-РОЙСом и просит принять его объявление \r а такой модели и фирмы производителя нет, \r варианты которые я увидел: ......... \r \r Я также согласен со "StarWind" иначе будет бардак. Что касается РОЛЛС-РОЙСа, ЛАМБАРГИНИ или Т-34, то их можно просто не учитывать. Можно также создать, например, "Эксклюзивные фирмы-производители" куда можно добавлять названия таких фирм-производителей. Это действительно облегчит жизнь девушкам на телефоне когда случаются такие объявления ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2003, 08:42 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
Большое спасибо, уважаемый Репликант, за столь обстоятельный ответ. Но проблема заключалась не в валидации или хранении информации в Slave-базах (организаций), если их так можно назвать, а в слиянии Slave-баз в мастер-базу у меня на сайте Я же хотел, чтобы было все по правилам, полновесная реляционная Master-БД, а не однотабличная. В общем варианты наверное сводятся к тому, что: 1. Я должен сделать БД из одной таблицы вида Собственно объявление Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
и отказаться от классификатора 2. В организациях забирать вместе с таблицей свежих объявлений и сами справочники, а потом разработать конвертилку в Master-БД. Самую большую проблему я вижу в AUTO_INCREMENT полях и дальнейшем сопоставлении записей справочников в Slave к Master. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2003, 10:50 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
2 Groove: Но проблема заключалась не в валидации или хранении информации в Slave-базах (организаций), если их так можно назвать, а в слиянии Slave-баз в мастер-базу у меня на сайте Я же хотел, чтобы было все по правилам, полновесная реляционная Master-БД, а не однотабличная. А в чем проблема, если у всех организаций будут единые правила заполнения справочника? Если у вас в каждой Slave будет соблюдаться целостность, то это без разницы сколько cливать или реплицировать таблиц/справочников с классификаторами в Master 1. Я должен сделать БД из одной таблицы вида ... и отказаться от классификатора Зачем? Механизм синхронизации классификатора в Master и Slave даже для Варианта 3 использует те же идеи, что и в решении для Варианта 3 (для заполнения девушками в организации), а также к-рая ниже с диапазоном или GUID дя слияния/репликации 2. В организациях забирать вместе с таблицей свежих объявлений и сами справочники, а потом разработать конвертилку в Master-БД. А какую СУБД вы используете? Самую большую проблему я вижу в AUTO_INCREMENT полях и дальнейшем сопоставлении записей справочников в Slave к Master. Если я пока правильно понимаю, то здесь вообще нет проблемы. Вы можете, например, разным Slave-БД назначить разные диапазоны с большим запасом для значений в столбце с AUTO_INCREMENT (т.е IDOrg,IDFirm,ID ). Тогда значения ID объявлений будут уникальны в своем диапазоне. Решение "топорное" потому что когда у вас закончятся значения в каком-то диапазоне (хотя это маловероятно для огромных диапазонов), то вам придется мудрить со вставкой. Вообще в вашем случае, наверное,ю лучше не связываться с AUTO_INCREMENT (IDENTITY): MSSQL2000 BOL: If an identity column exists for a table with frequent deletions, gaps can occur between identity values. If this is a concern, do not use the IDENTITY property. However, to ensure that no gaps have been created or to fill an existing gap, evaluate the existing identity values before explicitly entering one with SET IDENTITY_INSERT ON. .... Consider using the IDENTITY property when global uniqueness is not necessary, or when having a serially incrementing key is desirable. т.е в MSSQL вы бы могли использовать столбец uniqueidentifier (GUID) с DEFAULT newid() ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2003, 09:12 |
|
Репликация ли это?
|
|||
---|---|---|---|
#18+
УРА! Победил!!!\r Практически отвязал справочник-классификатор от объявлений и сделал возможность добавления несуществуующей марки и модели,\r При добавлении объявления о продаже из марок и моделей классификатора\r в объявление записываются еще и их идентификаторы, иначе ставится по умолчанию ноль\r Решением моей задачи стал этот пост, с небольшими дополнениями.\r А именно\r Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
\r Сам сайт находится тут http://auto.zaural.ru \r \r Посмотрите, может у кого еще какие то идеи появятся. Буду рад услышать дельные предложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2003, 10:44 |
|
|
start [/forum/topic.php?fid=32&msg=32234376&tid=1546797]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
193ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 300ms |
0 / 0 |