user login + database

0

Mam taką sprawę:
w bazie mam userów, którzy mają przypisaną do siebie własną bazę danych. Logując sie do panelu ustawiane są jego dane, tak, aby zostały pobrane tylko jego informacje. W przypadku 1 usera to nie ma problemu. Wszystko działa.
Jak zrobić, bądź z czego skorzystać aby udało się zalogować 2 i więcej userom w tym samym czasie?
Będę wdzięczny za podpowiedzi.

0

Wklej kod już masz - wtedy pomożemy. W czym dokładnie tkwi problem przy 2 i więcej użytkownikach? I co oznacza tekst "w bazie mam userów, którzy mają przypisaną do siebie własną bazę danych" ? Każdy user ma własną całą bazę i własne tabelki? Czy może chodziło Ci o jedną bazę i różne dane z różnych tabel?

0

Kod jest długi... :)
Już tłumaczę.
Do strony xxxx.pl podpięta jest baza danych, która zawiera userów. Userzy mogą się logować do panelu i zmieniać tam swoje dane. Wynik widoczny jest na subdomenie danego użytkownika, np. u12.xxxx.pl
I teraz: do zmiany tych danych służy jeden panel. Każdy z użytkowników ma swoją bazę danych, osobną niż baza danych strony. Logując się do panelu zmieniam dane do logowania i system pobiera dane usera z własnej bazy.
Jeśli zaloguje się 2 user to te dane się zmieniają i 1 (już zalogowany) dostaje inne dane.. I tu mam zagwozdkę - jak to zrobić, aby kilku userów w tym samym czasie było zalogowanych i widziało dane tylko ze swoich baz.

0

używać zmiennych?

0
NickOver napisał(a):

używać zmiennych?
Rozwiń!?

0

Przypisać dane logowania i serwery do zmiennych/obiektów. Możliwe że jestem przygłupi albo Ty nie potrafisz wytłumaczyć swojego problemu.
Dla mnie to wygląda tak:
User się loguje i pobierają się jego dane z jakiejś lokalnej bazy danych. Więc przypisz pobrane dane do jakiejś zmiennej/tablicy/obiektu i za ich pomocą nawiązuj połączenie z innymi bazami.

0

Każdy użyttkownik ma swoją bazę danych? albo się gubisz w tym co piszesz, albo wyrzuć tą aplikację.

2

Chyba coś przekombinowaleś. Dam Ci dobrą radę - nie utrudniaj sobie życia i nie kombinuj tam, gdzie nie trzeba.

Utwórz tabelę użytkowników, każdemu nadaj unikalne id - numer identyfikujący. W rej tabeli przechowuj podstawowe dane użytkowników, login, hasło etc.

Utwórz drugą tabelę zawierającą konfigurację, którą ustawia sobie użytkownik. Dodaj do tej tabelki kolumnę user_id, która posłuży do utworzenia klucza obcego łączącego tę tabelę z tabelą użytkowników po ich numerze id.

W apce robisz logowanie (np w sesji) i pobierasz konfiguracje dla zalogowanego użytkownika.

Jeśli użytkownik nie ma zapisanej żadnej konfiguracji (zapytanie do bazy zwraca null) to wyświetlaj mu jakąś podstawową konfigurację. Np zapisaną w zmiennych, klasie pomocniczej lub w osobnej tabeli 'default_configurations'.

I tyle. W żadnym razie nie trzeba osobnych baz danych dla każdego użytkownika. Zobacz jakiś tutorial na yt.

0

Tak, każdy użytkownik ma swoją bazę danych ze względu na to, że w każdej bazie znajduje się 10-20 tabel a i użytkowników jest kilkunastu na początek - potem kilkuset nawet. Trzymanie takiej ilości tabel w 1 bazie nie może być - takie założenia. Dlatego każdy user ma swoją bazę db12345 - gdzie nr to jego id.
Jakby było to takie proste to bym tu wątka nie wstawiał ;)

2

A jakie są założenia? bo kilkaset baz danych o tych samych tabelach to jakaś bzdura totalna. Pokaż schemat bazy obcięty do minimum.

0

Miałem bazy gdzie było ponad 20 milionów wierszy i daję głowę że działało to lepiej niż pierdyliard baz danych. Myślałem że masz te bazy rozsiane po różnych serwerach, ale jeśli nie, to tworzenie nowej bazy per user jest jednych z głupszych rzeczy o jakich słyszałem.

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