Построение "B2B" площадки с использованием PHP, XML, MSSQL

Evgeny_web

Новичок
Построение "B2B" площадки с использованием PHP, XML, MSSQL

Уважаемые участники форума.
возможно кто то имел опыт построения подобных систем, буду благодарен любым конструктивным советам!
передо мной поставлена задача: существует компания (дистрибуция) с внутренней информационной системой на базе MSSQL - необходимо построить защищенный (не для всех глаз) веб сайт с каталогом товаром, возможностью их заказа и т.д. (почти полноценная B2B система), причем актуальность информации и ее сохранность - почти равноценны.

Посему предложил структуру: MSSQL - XML - MySQL + PHP и точно наоборот обратно. Чтобы данные передавались и туда и в обратную сторону. Но в XML - необходимо хранить больше данных. нежели передаются из MSSQL. Кто то сталкивался с подобными реализациями? Может есть смысл выбрать другой язык (не PHP. а например, IIS+ASP?)

Буду благодарен любой ценной информации!
 

confguru

ExAdmin
Команда форума
Evgeny_web

Все зависит от кол-ва товаров и их характеристик.
И где тут B2B - поставшик то один..
Скорее B2C ^-)
 

Falc

Новичок
Evgeny_web
Почему бы не делать каталог на MSSQL если внутреняя система уже на нем?
Перекачка данных в MySQL будет лишним гемороем. А по функциональности MSSQL ничем не уступает MySQL.
 

Vital_N

Новичок
Evgeny_web
да, зачем тебе гонять туда сюда - а не напрямую работать с mssql?
 

Evgeny_web

Новичок
В MSSQL хранится большой объем данных конфиденциального характера, посему хотелось бы немного обезопасить себя с этой стороны. Т.е. передаваться из MSSQL будут только минимально необходимые данные.

Второе - это то, что к данным из MSSQL необходимо добавить еще некоторый блок данных, которые хранить в MSSQL нет возможности...

И третье - Будет не одно приложение (не один сайт), который будет использовать эту базу, причем у каждого сайта будет свой объем данных.

Да, скорее система B2C но закрытая от посторонних глаз:)
Данных - всего около 160-170К записей.

По сути будет несколько интернет магазинов, которые будут работать с одной и той же базой...наверное так будет понятнее.
 

Falc

Новичок
Evgeny_web
1. В MSSQL есть средства безопастности. Ты можешь создать нужную роль только с правами на нужные данные.

2. Что за такие данные которые нет возможности хранить в MSSQL?

3. можно использовать сразу 2 базы, но это тоже изврат.

Самым грамотным решением тут будет использовать родную базу тогда можно будет во внутренюю систему добавить различные обработки информации пришедшей с сайта (например просмотр заказов или добавление информации о заказах в бухгалтерскую базу).
А синхронизация баз данных в данном случае будет лишним гемороем :)
 

Evgeny_web

Новичок
Falc
Общую структуру я себе так представляю: http://www.prgma.ru/db/db_.gif
1. понятно, спасибо. Но все таки, это связано с политикой безопасности, никаких прямых связей с MSSQL сервером нет, по крайне мере пока...
2. не то чтобы нет возможности хранить - никто их не будет туда вводить - это например картинки, описания для товаров, характеристики и т.д. а через веб интерфейс - будут вводить менеджеры.
3. Аналогично думаю:)
А с использованием данных из XML тоже ведь возможно импортировать данные в MSSQL?
 

Falc

Новичок
MSSQL->CSV->XML - Это вообще круто :) Неужели в MSSQL нет возможности сразу перегнать данные в XML?

Да и схема у тебя не понятная. Что у тебя для каждого приложения будет своя база? и в каждую ты будешь перегонять отдельный XML? Кстати в MySQL'е нет средст по работе с XML так что разбор XML'я придется реализовывать на клиенте, что понижает надежность всей системы.

Полагаясь на свой опыт могу сказать что синхранизация данных - это одно из наиболее не надежных мест в системе. Если не дай бог тебе понадобится двухстороняя синхронизация то это будет вообще засада.
 

Evgeny_web

Новичок
Falc
В том то и дело, что скорее всего потребуется двусторонняя синхронизация в дальнейшем:(

Поскольку, как я отмечал в свзяи с политикой безопасности, прямого доступа к MSSQL не будет, придется использовать некую промежуточную базу, я выбрал именно XML
Вот и прошу совета, может как то п одругому построить данную систему, все же с учетом отстутствия прямого доступа к MSSQL?
кстати: если интересно - эту работу я готов оплатить (построение и реализация ключевых моментов, остальное - функциональность будет реализовывать программист на php немного ниже уровнем).
Сейчас мне важно просто определиться со хемой, что бы подбирать разработчика.
Благодарю за Ваши ответы.

-~{}~ 07.07.05 12:49:

Что у тебя для каждого приложения будет своя база? и в каждую ты будешь перегонять отдельный XML?
нет, будет единая база в XML из которой каждый "клиент" будет забирать тольок часть информации (что то полность базу, что то чатями, ведь как я понимаю это вполне возможно реализовать через XML)
 

Falc

Новичок
Evgeny_web
>>придется использовать некую промежуточную базу, я выбрал именно XML
XML это не база.
Я бы все-таки на твоем месте копнул в сторону "политики безопастности".

Автоматическая полноценная двустароняя синхронизация MSSQL и MySQL - это скорее миф чем реальность.
 

Evgeny_web

Новичок
Falc
XML - как формат храненя данных использовать.

Автоматическая полноценная двустароняя синхронизация MSSQL и MySQL - это скорее миф чем реальность.
понимаю...В том то и сложность проекта. Политику безопасности сейчас сдвинуть не могу, да и в ближайшее время вряд ли удастся...Посему придумываю что могу:)

Интересно. например, как это реализовано на таких сайтах как www.mvideo.ru. там постоянное обновление информации, постоянная взаимосвязь с базой внутренне как я понимаю...
 

BeGe

Вождь Апачей, блин (c)
Мсье знает толк в извращениях :).
У вас есть два выхода. Или перевод всей системы на OpenSource продукты, или работать уже с тем что есть. Гонять данные между mssql и mysql - это бред.

Если уж на столько важна секртность данных - создайте несколько баз данных, но на одном MS сервер, вам будет на много легче их синхронизировать.

MSSQL позволяет отдавать данные сразу же в XML формате.

И прошу Вас, не городите чепухи с 2 базами данных.

Поствьте ещё один mssql сервер (отдельную машину), и радуйтесь жизни, MSSQL нормально умеет делать хоть 3х сторенную синхронизацию.
 

Evgeny_web

Новичок
BeGe
т.е. по сути просто поставить 2й сервер с MSSQL и работать с ним на php, как с MySQL?
А сервера между собой синхронизировать..
Тогда вопрос следующий, насколько тяжело приучить php к MSSQl? есть ли какие либо минусы?
 

BeGe

Вождь Апачей, блин (c)
Evgeny_web - нету никаких минусов :). Надо только на unix машину поставить freetds.
Но с mssql отличается от mysql идиологией архитектуры, и в mssql надо делать очень большой упор на процедуры.

А потом когда вы поймёте, что в одном сервер mssql можно спокойно подключить базу другого сервера mssql И рабоать как с локальной у вас отпадёт желание даже стваить второй сервер :).
 

Evgeny_web

Новичок
BeGe
опять же вопрос политики безопасности. Прямого доступа к текущему серверу - давать низя...
тот же самый XML - я рассматривал как "шлюз, буфер". теперь таким элементом можно использовать 2й сервер MSSQL..

Второй сервер должен быть на unix`е что бы можно было работать через PHP, так?

Мне не потребуется использовать полностью всю БД, необходимо синхронизировать только чать данных.
Я бы ввел в курс дела, но это достаточно объемно...если есть у кого желание, можно в личке - там все опишу, да и если человек грамотный - с удовольствием отдам ему реализацию, главное что бы в москве был:)
 

Falc

Новичок
Evgeny_web
>>Второй сервер должен быть на unix`е что бы можно было работать через PHP, так?
Второй сервер на unix'е быть не может этоже MSSQL.
Если хочешь веб-сервер под nix то придется ставить 2 сервака один под веб-сервер другой под MSSQL. Если же устроит и винда то можно обойтись и одним сервером.
 

Evgeny_web

Новичок
Falc
конечно устроит!:)
поискал на форуме про PHP и MSSQL - возникает достаточно сложностей в процессе настройки и разработки...
Но я готов прислушаться к вашему мнению, и уже считаю что данная система - более подходит под задачи.
Если я правильно понимаю - таким образом сервера можно синхронизировать каждые 5 минут?:) и информация будет актуальной?
а можно ли построить вот какую схему:
из текущего сервера передается только инфорация. требующая обновления, а остальная информация хранится на втором сервере MSSQL, где для кажого проекат по необходимости будут созданы отдельные таблицы с данными?
 

Falc

Новичок
Evgeny_web

>>поискал на форуме про PHP и MSSQL - возникает достаточно сложностей в процессе настройки и разработки...

Если поискать по форуму MySQL то сложностей можно найти гораздо больше :)

Вопросы по синхронизацию MSSQL я думаю лучше задать в форуме по MSSQL.
 

BeGe

Вождь Апачей, блин (c)
У меня есть к Вам два вопроса.
Где должен располагатся веб сервис !! (именно сервис) ?
Где располагается MSSQL сервер ?
 

Evgeny_web

Новичок
BeGe
Где должен располагатся веб сервис !! (именно сервис) ?
В смысле (что значит сервис)?
Где располагается MSSQL сервер ?
сейчас - в москве, в офисе компании.
второй SQL сервер тоже должен располагаться в офисе, т.е. получается структура с 3мя серверами: 2 SQL и один для обработки (PHP).
Мне главное сохранить текущую схему, когда к данным на сервере не получает доступ никто, кроме сотрудников компании в данном офисе!
 
Сверху