Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodanie wiersza do widoku w bazie danych, nie pogardzę rozwiązaniem alternatywnym ;)
batman
post
Post #1





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Mam pewien nietypowy problem. W bazie danych znajdują się dwie tabele: tabuser i tabprofile. W tabeli tabprofile znajduje się pole iduser, które jest kluczem obcym. Używając join-a stworzyłem widok, który ułatwi mi pobieranie danych o użytkowniku. I rzeczywiście, jest to wygodne rozwiązanie w przypadku pobierania danych. Jednak w przypadku usuwania lub dodawania danych nie jest już tak różowo - niepoprawne zapytanie i błąd.
Rozwiązałem ten problem w taki sposób, że klasa Account agreguje klasy User i Profile, które są odpowiedzialne za operacje na danych w odpowiednich tabelach. Rozwiązanie to sprawdza się w praktyce, jednak moim zdaniem jest nieco przekombinowane.
Macie jakieś pomysły na rozwiązanie tego problemu? Połączenie tabel w jedną nie wchodzi w grę, podobnie jak funkcje trigger.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
a wracając do sedna sprawy. mając takie założenia odwróciłbym problem, teraz masz tak:

1. Operacja wykonywana jest za każdym razem, gdy w jednym z serwisów zakładane jest nowe konto. Wówczas tabele tabuser są synchronizowane.
3. Każda baza danych posiada taki sam podstawowy mechanizm do tworzenia widoków.
4. Patrz punkt 1 - synchronizowana jest tylko tabela tabuser (w wyjątkowych sytuacjach może dojść do synchronizacji niektórych pól z tabprofile)

Cytat
jak ci sie widzi taka koncepcja:

Pomysł bardzo fajny, jednak już go wałkowałem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
3. Synchronizacja tylko niektórych pól nie jest najlepszym rozwiązaniem, ponieważ w różnych serwisach różne pola są wymagane. W jednym będzie to numer telefonu, w innym imię i nazwisko, w jeszcze innym wiek. A nie każdy system będzie posiadał te pola w bazie danych. Dodanie nowego serwisu będzie skutkowało tym, że skrypt do synchronizacji będzie musiał być przerabiany dla każdego nowego serwisu (a liczba serwisów jest ograniczona jedynie wyobraźnią klienta (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ).

Zastanawiałem się również nad stworzeniem tabeli tymczasowej, która pełniłaby rolę kontenera na dane z tabuser i tabprofile, jednak takie rozwiązanie stworzy dodatkowy problem z synchronizacją danych w obrębie jednej bazy danych.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 01:31