Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 1 Dołączył: 25.09.2007 Ostrzeżenie: (0%)
|
Doświadczeni koledzy. Chcę przygotować bazę danych na 600 klientów. I teraz każdy z nich będzie miał dostęp do faktur, dodawania nowych newsów, dodawanie podstron, itp.
Jak optymalnie zbudować bazę danych? Czy lepiej dla każdego klienta tworzyć oddzielną tabelkę w bazie danych, czy poprostu, lepiej zbudować tabele odpowiednio do faktur, newsów, itd. i za pomocą zapytań wyszukiwać rekordy potrzebne do zwrócenia np: SELECT * FROM tabelka WHERE user='$user'; Jak uważacie ? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%)
|
Jasne że to drugie, gdybyś chciał budowac oddzielną tabelę dla każdego klienta, to w bazie masz 600 tabel. W przeciwnym przypadku masz kilka tabel z max 600 rekordami. Wydajność jest nieporównywalna. Poza tym, żeby dla każdego zarejestrowanego klienta utworzyć tabelę, musiałbyś nadać przywilej SQL CREATE każdemu (nawet jeszcze niezarejestrowanemu) użytkownikowi, a to po prostu wieje grozą. Proponuję Ci taką strukturę bazy:
Kod Klienci (id, nazwisko, imię, adres) Faktury (id, faktura_id foreign key(Faktury_klientow)) Faktury_klientow (faktura_id primary key, faktura) Newsy (id, news_id foreign key(Newsy_klientow)) Newsy_klientow (news_id primary key, news) To w przypadku kiedy jeden klient może mieć więcej niż jedną fakturę lub newsa lub coś tam. Oczywiście taką strukturę bazy dostosowujesz do swoich potrzeb. Pozdrawiam. |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 15:17 |