Witam,
Chciałbym wymieniać dokumenty w postaci XML między firmami. Myślę, żeby to zrobić przez webservice'y (chociaż można to zrobić poprzez requesty http i budować xml przez np php), ale nie wiem w jaki sposób przechowywać je w bazie. Czy użyć pola XML w MS SQL , czy też lepiej przechowywać w w formie płaskiej w tabeli i budować XML'a w momencie requestu przez firmę zewnętrzną. Jak myślicie? Jeżeli firmy wewnętrznie używają też tego samego formatu XML to możesz je trzymać w XML.
Jeżeli jednak firmy używają wewnętrznie różnych formatów (i niekoniecznie XML) i dodatkowo gdzieś te dane wyświetlasz (stronicowanie, wyszukiwanie, itp) to w bazie trzymałbym płasko, a XML użył w warstwie integracyjnej (jako format wymiany danych).
Polecałbym zaprojektować odpowiedni XSD (łatwe sprawdzanie poprawności przychodzących/wychodzących danych). Dane z bazy bym wyrzucał jakimś $Object->toXml() i formatował przy pomocy XSL do formatu wymaganego.
Np mając wyrzucając jakiś dokument związany z klientem (tabele document i client) wyrzucić XML:
symbol Bolek Bolkowy
asdf/12
i przy pomocy XSL zmieniać go tylko w format wymagany przez XSD.
Co do samych XML używanych w wymianie dokumentów możesz zainteresować się EDI en.wikipedia.org/wiki/Electronic_Data_Interchange.
Użycie tych technologi zależy jednak jak duży czy jak szeroko będzie używany Twój system wymiany danych.
Przechowywanie i wymiana danych w postaci plikó
pyt
Q