Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jaka architektura - baza dla nowego użytkownika
Forum PHP.pl > Inne > Hydepark
netvalue
Witam,

Stworzyłem aplikacje PHP / MYSQL. Chcę ją udostępniać dla każdego zarejestrowanego użytkownika.
Potrzebuje relacji 1 użytkownik = 1 baza danych , ponieważ chce robić codzienne kopie bezpieczeńswa
bazy danych dla każdego z użytkowników ...

Zastanawiam się jak ma to wyglądać przy rejestracji nowego użytkownika..
przykłąd:

1. użytkownik wchodzi na stronę i wypełnia formularz rejestracjny
2. zostaje utworzone konto użytkownika oraz czysta baza danych aplikacji

Czy takie rozwiązanie jest ogólnie optymalne i możliwe ?
buliq
Nie wiem czy to ma sens, wszystko może być w jednej bazie, z odpowiednim zabezpieczeniem żeby drugi user tego nie widział.

Poza tym możesz z poziomu php wywołać zapytanie SQL do stworzenia usera i jego bazy, następnie możesz też dodać zawartość do tej bazy ale lepiej by było proces tworzenia bazy danych( wczytywania zapytań tworzących tabele itp) przenieść poza php, żeby user go nie zepsuł
netvalue
tak ale chce zeby baza aplikacji byla codziennie backupowana do pliku .sql i udostepniana dla uzytkownika....
takze jesli bym mial jedna baze dla np 100 uzytkownikow to troche nie tak...

ponadto niektorzy uzytkownicy beda dzialac w trybie demo... i jesli by korzystali wszyscy z jednej bazy
robil by sie smietnik... czasami tez bedzie potrzeba przeniesienia kilku uzytkownikow na inny serwer.
Posio
czyli do każdej tabeli w bazie musisz mieć przyporządkowany identyfikator użytkownika, tak też zrobisz backup bazy danych. np. nie będziesz robił totalnego backupu, tylko tych danych gdzie id = 3. To samo przy przenoszeniu. Czyli ujmując to w jedno słowo, relacje. 1 użytkownik i wszystkie powiązania.
sowiq
Cytat(netvalue @ 4.09.2013, 15:45:15 ) *
Czy takie rozwiązanie jest ogólnie optymalne i możliwe ?

Możliwe - tak. Optymalne - nie bardzo.

A rozdzielanie dostępu do poszczególnych rekordów w bazie danych czy typ konta użytkownika (demo/full) implementuje się na poziomie aplikacji, a nie samej bazy danych.

Zresztą wyobraź sobie co by się stało, gdybyś nagle musiał zmienić strukturę jednej tabelki (np. dodać nową kolumnę).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.