Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Integracja wielu baz danych
integer111
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.07.2007

Ostrzeżenie: (0%)
-----


Witam mistrzów klawiatury.
Od paru miesięcy jestem zatrudniony w pewnej dość dużej firmie zorientowanej na branżę artykułów dziecięcych. Firma, a tak naprawdę spółka czterech firm pracuje na czterech takich samych programach (po jednym dla każdej części spółki). Każdy program korzysta z własnej bazy danych - i dobrze, pomaga to w rozliczaniu podatków. Ale z drugiej strony są dane które mogły by być wspólne dla wszystkich 4 baz (firm) z ewentualną perspektywą na więcej. I to jest moje zadanie winksmiley.jpg. Ja realizuję integracje danych z czterech baz za pomocą tablic (array) w php. Na przykład moduł do wyświetlenia cen produktów ze wszystkich baz ładuje wszystkie cenniki z każdej bazy po kolei i zapamiętuję w tablicy. Następnie przeprowadza pętle która sprawdza w każdej bazie czy już istnieje taki produkt (w moim wypadku na podstawie nazwy które są identyczne) i jeżeli tak to modyfikuje tablicę tak aby dany produkt występował w niej tylko raz, ale miał ceny z wszystkich baz. I to działa - nie za szybko, ale działa. A jak wy radzicie / poradzili byście sobie z takim problemem? (bazy są na firebird'zie)
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Nie łatwiej zrzucić cztery bazy do jednej i na niej przeprowadzać operacje ?
Go to the top of the page
+Quote Post
sniver
post
Post #3





Grupa: Zarejestrowani
Postów: 159
Pomógł: 5
Dołączył: 31.08.2007

Ostrzeżenie: (0%)
-----


1 sposób
a. Zrób sobie tabele z produktami.
b. Dowiedz się co to są samowyzwalacze (trigery) i stwórz odpowiedni kod by dodawał, usówał i uaktualniał rekordy po wykonaniu odpowiednich operacji na "rodzimych" tablicach.
c. Zrób skrypt i odpalaj go z crona (np. wtedy gdy najmniej sie robi w bazie - być może w nocy). Skrypt ten powinien kasować zawartość tej tabeli (gdyby sie coś popsuło), a potem na nowo kopiować zawartość - dzięki temu codziennie wszystko powinno być spójne...

II sposób
Istnieje inna ewentualność - czyli zbudowanie widoku, ale nie będzie to działać szybko (w sumie zależy od serwera i wielkości bazy danych)...


--------------------
Go to the top of the page
+Quote Post
integer111
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.07.2007

Ostrzeżenie: (0%)
-----


Stworzenie widoku między różnymi bazami danych? blinksmiley.gif Wydaje mi się, że widok może operować na różnych tabelach ale tylko w jednej bazie.

EDIT:
@CuteOne: Nie mam takiej możliwości, bo po pierwsze wymagało by to przebudowania całego gotowego już kodu, a po drugie te bazy to twory żywe, a przy każdym module potrzebna jest inne połączenie danych więc stworzenie następnej bazy nie miało by za bardzo sensu / zastosowania w moim przypadku

Ten post edytował integer111 6.11.2010, 10:51:32
Go to the top of the page
+Quote Post
Albert1984
post
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 21.11.2008

Ostrzeżenie: (0%)
-----


Cytat(integer111 @ 6.11.2010, 10:46:34 ) *
Stworzenie widoku między różnymi bazami danych? blinksmiley.gif Wydaje mi się, że widok może operować na różnych tabelach ale tylko w jednej bazie.


Widok działa między różnymi bazami danych. Ale jak zostało wspomniane wcześniej nie jest to zbyt szybkie rozwiązanie, ewentualnie można pobawić się w cachowanie danych jeżeli te dane są prezentowane gdzieś dla większej ilości użytkowników.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:11