Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: DATABASE dla każdego
Forum PHP.pl > Forum > Bazy danych > MySQL
Pogo
Witam.

Od niedawna zastanawiam się nad strukturą pewnej bazy, a raczej nad pomysłem na nią.

Powiedzmy że istnieje X użytkowników, każdy użytkownik posiada powiedzmy 10 danych kontaktowych, 10 danych administracyjnych, 10 danych dodatkowych Y i 10 danych dodatkowych Z, a każda z Y oraz Z posiada swoich 10 kolejnych właności.

Rozwiązanie takiej bazy jest dosyć proste.
tabela Users
tabela Y
tabela Z

i wybieranie z Y oraz Z danych przy pomocy selekcji ID usera.

Takie jednak rozwiązanie wprowadza troche chaosu do bazy,
w tabeli Y (tudzież Z) mamy wpisy wszystkich użytkowników, a tabela Users ma 2m.
dużo bardziej przyjemnie i przejżyście byłoby, gdyby każdy z użytkowników miał swoją DATABASE,
a w niej odpowiednie tabele, KONTAKT, ADMINISTRATE, Y, Z, itd
funkcje php były by bardziej przejżyste, tablice przeglądało by się szybciej i prościej, i cały świat byłby znów trochę piękniejszy.

No i teraz pytanie... czy takie rozwiązanie ma sens ?
Czy MySql ma ograniczenie co to ilości DATABASE ?
Czy taki układ bardziej obciąża system ?
Jeżeli to głupie, to dlaczego ? (nasłuchałem się już : "bo tak się nie robi" i "nie, tak nie można", ale nikt nie jest w stanie mi wytłumaczyć dlaczego, więc darujcie sobie zbędne komentarze)

Może ktoś już tak próbował ?
kaminskp
Moim zdaniem ja bym to załatwił dwiema tabelami.

nazwa_czlowieka
id_czlo
nazwa

adresy
id_adresu
id_czlo
adres

Samo zapytanie w SQL może niech ktoś inny wymyśli.
Ale kiedy zapytasz o adresy Kowalskiego o id_czlo = 2 to powinny się wyświetlić.
nevt
Cytat
No i teraz pytanie... czy takie rozwiązanie ma sens ?
Czy MySql ma ograniczenie co to ilości DATABASE ?
Czy taki układ bardziej obciąża system ?
Jeżeli to głupie, to dlaczego ? (nasłuchałem się już : "bo tak się nie robi" i "nie, tak nie można", ale nikt nie jest w stanie mi wytłumaczyć dlaczego, więc darujcie sobie zbędne komentarze)


1. nie ma sensu.

2. odpal skrypt:
  1. <?php
  2. $db = mysql_connect('server', 'user', 'password');
  3. $i=0;
  4. while(true)
  5. {
  6. mysql_query("CREATE DATABASE db_$i;");
  7. echo $i++;
  8. echo '<br />';
  9. }
  10. ?>
i zobacz kiedy się wysypie ...

3. taki układ uniemożliwia normalne korzystanie ze zgromadzonych danych.

4. jest to tak samo mądre, jak napisanie pracy magisterskiej w edytorze, ale tak że każdy akapit będzie w osobnym pliku. albo arkusza danych tak, że każdy wiersz tabelki z danymi będzie w osobnym arkuszu. spróbuj na początek tak korzystać z komputera: każdy plik jaki tworzysz, wrzucaj do nowego katalogu na C:\ ... spróbuj tym w jakikolwiek sposób zarządzać ... spróbuj to ogarnąć po pół roku używania i wygenerowaniu 100 000 plików. może zrozumiesz, dlaczego tak się nie robi ...
Sedziwoj
Cytat(nevt @ 27.04.2008, 23:29:45 ) *
4. jest to tak samo mądre, jak napisanie pracy magisterskiej w edytorze, ale tak że każdy akapit będzie w osobnym pliku. albo arkusza danych tak, że każdy wiersz tabelki z danymi będzie w osobnym arkuszu. spróbuj na początek tak korzystać z komputera: każdy plik jaki tworzysz, wrzucaj do nowego katalogu na C:\ ... spróbuj tym w jakikolwiek sposób zarządzać ... spróbuj to ogarnąć po pół roku używania i wygenerowaniu 100 000 plików. może zrozumiesz, dlaczego tak się nie robi ...


Lub jak instalowanie kolejnego programu pocztowego, dla każdego kontaktu...
(bo przecież tak kontakty są na jednej liście)

A swoją drogą, jak się człowiek na czymś nie zna, a ci co już coś wiedzą (wszyscy), że tak się nie robi, to taka osoba przyjmuje to, najwyżej jak się czegoś nauczy i będzie miała dalej wątpliwości, to już z konkretami może dyskutować.
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.