Autor Zpráva
Filip111
Profil
Zdravím,

dostal jsem tadu na fóru už několik užitečných podnětů, proto bych rád požádal o další názory na následující problém...předem děkuji.

Řeším "replikaci" (nikoliv v pravém slova smyslu) mezi MySQL a MSSQL. Problém je v tom, že se nejedná o klasickou replikaci, ale data je nutné mezi oběma DB totálně přetransformovat, takže by se jednalo o jakési pravidelné (každou hodinu, přinejhorším jednou denně) importy a expoty. Hlavní je, že oba systémy budou žít vlastním životem, takže se skoro dá mluvit o replikaci.

A teď kámen úrazu - obě databáze mají zcela jinou strukturu. Jedna DB má většinu informací v jednom řádku, druhá databáze má něco v jednom řádku, něco v dalších tabulkách pospojované přes referenční tabulky.

Imaginární příklad:
MSSQL:
tabulka firem se sloupci id, nazev, ulice, mesto, fakur_adr_ulice, faktur_adr_mesto, telefon, email, fax

MySQL:
tabulka firem se sloupci id, nazev, ulice, mesto
tabulka adresy_firmy se sloupci id_firmy, id_adresy
tabulka adres se sloupci id, ulice, mesto, typ

(typ ukazuje na číselník typů adres, kde jedna z nich je označená jako fakturační, v zásadě tedy může mít jedna firma několik adres různého typu)
tabulka kontakty_firmy se sloupci id_firmy, id_kontaktu
tabulka kontaktu se sloupci id, typ, kontakt

(typ opet rika o jaky kontakt se jedna...email, telefon, fax, sms brána, ...)


Abych mohl něco z MySQL přenést do MSSQL budu muset tedy nejprve nadefinovat jaký typ adresy brát jako fakturační, jaký typ kontaktu ukládat jako email, jako telefon apod. Dovedu si představit předávání dat jedním směrem, ale zatím nikoliv oběma (tak aby to dlouhodobě fungovalo).

Nápady realizace:
1) vytvořením php scriptů, které budou dolovat data a předávat a brát data z/do MSSQL
2) replikace 1:1 mezi MySQL a pomocnou MSSQL databází s tím že na straně MSSQL bude uložená procedura, která zajistí import a export dat do ostré databáze (to samé může být teoreticky na straně MySQL)

Myslím, že dokážu data připravit tak, aby jsem je z jedné DB vytáhnul a do druhé DB uložil. Nevím ale jak to zajistit obousměrně, abych přenášel jen rozdíly.

Díky.
(cením si každé dobré rady, možná nebudu hned reagovat, nejsem dneska celý den u PC)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: