2013-11-10 3 views
1

Я нахожусь на стадии планирования создания веб-сайта для компании, с которой я работаю. Эта компания является оптовиком электроники и хочет получить лучшее присутствие в Интернете. Их нынешняя POS-система использует PervasiveSQL в качестве базы данных. Я буду использовать MySQL для сайта DB и PHP для языка.Связь базы данных с базой данных

Я хочу интегрировать этот сайт с этой текущей базой данных; Я хочу, чтобы сайт использовал свою собственную базу данных на случай, если произойдет вторжение, все не будет скомпрометировано. Когда веб-сайт принимает заказ, я хочу, чтобы он также дублировался в их POS-систему.

Как я могу это сделать? Я просто пишу второй оператор INSERT в своем коде и вставляю в обе базы данных? Есть ли способ, который я могу использовать, когда в базе данных что-то вставлено в таблицу, оно вызывает событие, которое вставляет информацию и помещает ее в другую базу данных? Я спрашиваю об этом, потому что, когда новый продукт или учетная запись пользователя добавляются в исходную систему POS, я хочу, чтобы эта информация была помещена в базу данных веб-сайтов.

+1

Вы собираетесь создать API для базы данных POS. Сайт не должен напрямую взаимодействовать с базой данных, а делать запросы с использованием API. Таким образом, у вас будет два отдельных приложения, веб-сайт и POS-API. – donutdan4114

+0

Что вы посоветуете для языка API? Я порядочный в Java и C#. Существуют ли другие варианты, которые могут быть лучшими и возможными отправными точками для создания API для такой задачи? – NeonOriginal

+0

Вы можете создать POS API на любом языке, который вам нужен. Используя PHP, вы можете очень быстро настроить хороший RESTful API. Но, пожалуйста, ИСПОЛЬЗУЙТЕ РАМОЧНУЮ. Если вы не планируете использовать уважаемую инфраструктуру для сайта/API, не делайте этого. (Мне очень нравится Laravel) – donutdan4114

ответ

1

Из того, что вы описали, вы можете сделать веб-сайт, чтобы получить доступ к базе данных системы POS, используя учетные данные только для чтения. Тогда вам не нужно будет дублировать данные. Если произошел эксплойт веб-сайта, злоумышленники не смогут получить доступ к записи в базу данных POS.

Если вам нужно записать в базу данных POS из веб-приложения и беспокоиться о ее прямом доступе, вы можете поместить веб-службу между ними (доступную только из вашей внутренней сети) и называть это скорее чем прямой доступ к базе данных POS. Фактически, размещение веб-службы на месте было бы хорошим способом для чтения из POS-системы.

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

0

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

Предположим, вы используете PDO.

Для подключения 2-х баз данных, вы можете использовать:

$db1 = new PDO('mysql:host=localhost;dbname=database1;charset=utf8', 
'username1', 'password1'); 

$db2 = new PDO('mysql:host=localhost;dbname=database2;charset=utf8', 
'username2', 'password2'); 

Это приведет к 2 ссылок базы данных $ DB1 и $ db2

Для вставки в обеих базах данных, вы затем использовать ссылки в вашем запрос запроса

$result1 = $db1->exec("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')"); 
$result2 = $db2->exec("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')"); 
Смежные вопросы