Jak zrobic dynamiczną metodę zależna od bazy danch?

0

Mam 3 bazy danych Baza A, Baza B, i Baza U.
W bazie A i w bazie B sa użytownicy, co znaczy ze w kazdej znich pod tym samym numerem ID sa rozne osoby
Baza U ma taki model jak konrakt a w nim metoda klienci

Contract::with('customers')->get()

Jak wyświetlić wszystkie kontrakty ale tak że jesli kontrkt jest zrobiony dla Bazy A to pobiera klienta z bazy A, a jesli z bazy B to pobiera klienta z bazy B. Czy da sie to zrobic w jednym modelu jakoś czy mam pobierać wszystkie kontrakty a potem w pętli sprawdzać czy rekord nalezy do A lub B i pobierać dane o klincie i mergowac?

0

@chomikowski: A nie prościej pobrać najpierw wszystkich z tabeli A, później z tabeli B i zmergować wyniki?

0

Jesli zmerguje wszystkich z tabeli A np 300 tys rekordow i z tabeli B 600 tys rekordow, to dostane wynik 900 tys rekordow. i teraz te dane nie sa mi potrzebne bo mnie inetesruje tylko dane z tabeli U weic jesli wtabeli U mam 4 rekordy to jak mam teraz wybrac dla tcyh 4 rekordow dane z tych zmergowanych danych 900 tys rekordow? i po co mam tracic czass na pobeiranie prawie miliona rekordow jesli chce tylko informacje dla 4 rekordow z tabeli U?

0

To bazy są różne, czy table?
W pierwszym poście piszesz o bazach, w ostatnim o tabelach?

0

@chomikowski: Źle mnie zrozumiałeś albo ja Ciebie. Założyłem, że masz tabelę U:
id|customer_id|table_type
1|1|table_a
2|2|table_a
3|1|table_b
4|3|table_a
5|2|table_b

I teraz, najpierw pobierasz wszystkich z tej tabeli, którzy mają table_a, następnie wszystkich co mają table_b i wtedy mergujesz te 5 rekordów a w tabeli A i tabeli B może być i po 700 rekordów.

0

w tabeli U jest tylko customer_id | brand czyli moze byc to samo customer_id ale beda w roznych bazach bo jedna dla brandu samsung inna dla suzuki na przyklad. Cos ogarniam z BelongsTo i moze sie uda jak cos wrzuce odpowiedz

0

Chyba nie bardzo da się to łatwo zrobić.
Jeśli byśmy chcieli to zrobić na poziomie bazy to może i działało by przy tej jednej metodzie, ale jak ktoś zrobi np. zapis albo pobór samego ID to nie będziesz wiedział z jakiej bazy to jest.
Dlaczego trzymasz te dane w oddzielnych bazach? Ja raczej skupiłbym się na tym, żeby to wepchać jakoś prawidłowo do jednej bazy a nawet jednej tabeli.

0

Samo wybranie id bedzie sie zawsze wiazalo z BelongsTo do danej bazy. to nie jest kwestia tego ze trzymam dane w dwoch bazach. tylko ze przychodzisz do firmy i masz juz gotowe bazy kilku letnie od kilku roznych firm i maja byc oddzielne i tyle :) ale pocisne to tak czy inaczej, szukamn optymalnego rozwiazania

1 użytkowników online, w tym zalogowanych: 0, gości: 1