Witam,
nie wiem czy tytuł tematu opisuje dobrze mój problem ale mam nadzieję, że tak właśnie jest.
Otóż przymierzamy się do pisania sklepu internetowego. Sklep będzie posiadał m.in. standardowe tabele typu użytkownicy, kategorie, produkty itd. Założenia są takie aby uruchomić sklep główny, a równocześnie móc prowadzić sklepy podrzędne (stojące na tym samym serwerze co sklep główny). Sklepy podrzędne miałyby wszystkie tabele własne poza tabelą produktów, która byłaby wspólna dla wszystkich sklepów (m.in. wspólne ceny, stany magazynowe itd). Jak to teraz najlepiej rozegrać?
Początkowo myśleliśmy aby każdy sklep posiadał własne tabele oraz tabele typu master (m.in. właśnie produkty). Wiem, że można w Symfony korzystać z kilku baz równocześnie (link). Jednak takie rozwiązanie wymusza duplikację kodów na poziomie PHP (nowy sklep = nowy projekt = przekopiowanie odpowiednich klas). Czy jest jakiś sprytny myk, dzięki któremu wszystkie te aplikacje korzystałyby z jednych zasobów kodów PHP?
Kolejnym pomysłem jest stworzenie jednej aplikacji, która w każdej tabeli w bazie danych przechowuje id typu aplikacji podrzędnej. W bootstrapie możnaby wówczas określać id aktualnie używanego sklepu (po adresie) i tworzyć odpowiednią wartość konfiguracyjną (chociażby zdefiniować stałą). Może nie w bootstrapie - to gdzie?
Reasumując: system powinien spełniać wymogi:
- wspólne źródła danych dla poszczególnych pod-aplikacji (typu produkty)
- osobne źródła danych dla poszczególnych pod-aplikacji (typu użytkownicy)
- korzystanie z jednych i tych samych plików klas, modeli, szablonów itd.
Miał ktoś podobny dylemat?
Pozdrawiam,
pion