![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 30.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Lepiej stworzyć 5 tabel, np.
komentarze_newsów komentarze_plikow_download komentarze_artykulow wpisy_w_ksiedze_gosci komentarze_sondy Czy jedną tabelę "komentarze" z polem int oznaczającym, do czego jest ten komentarz ? Mi się wydawało, że szybciej jest 5 tabel, bo baza ma mniej rekordów do przeanalizowania, a gdzieś przeczytałem, że lepiej ograniczać ilość tabeli ![]() Nazwy tabel dałem takie tylko do wyjaśnienia przykładu ![]() -------------------- ?>
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 288 Pomógł: 12 Dołączył: 2.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zrób w jednej tabeli (trzymasz wszystko w kupie), a pole int oznaczające gdzie ma być komentarz możesz np. oznaczyć jako INDEX
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 30.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
I to dobrze będzie ?
![]() -------------------- ?>
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Tak, będzie dobrze.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 30.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
OK, dzięki, to właśnie tak zrobię, sporo mi się uprości w zapytaniach :]
Buziaczki :* -------------------- ?>
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
A ja zawsze jestem tego przekonania że jak ma być wszystko w kupie to *** z taką bazą danych...
Tam będzie tyle 0 w tej bazie danych że to jest w ogóle bez sensu robić jedną wielką tabelę z 5 różnymi w ogóle nie pasującymi do siebie rekordami, przecież on ich nigdzie nie będzie ze sobą łączył, wg mnie kolego zrób to na osobnych tabelach. -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#7
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
jakich zer? beda numerki badź inne rzeczy wskazujace tylko do czego wpis jest powiązany i jakich niepasujacych? wszystkie są praktycznie identyczne w koncu nie robi sie 5 różnych rodzai komentarzy na tej samej stronie
w tym wypadku bardzo dobrym wyjsciem jest trzymanie takichs samych wpisów w 1 tabeli |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Np:
ID | komend_do_newsa | koment_do_artytuku | koment_do_księgi_gosci | koment_do_plikow | koment_do_sondy 1 | 0 | 1 | 0 | 0 | 0 A może chcesz tam jeszcze null wstawić? Standardem w ANSI SQL jest to by rekordy nie miały wartości NULL. -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
cojack: goraczke masz?
Cytat Czy jedną tabelę "komentarze" z polem int oznaczającym, do czego jest ten komentarz ? JEDNO POLE, typ z wartosciami liczbowymi lub tekstowymi? Po co robic 5 kolumn? Przeciez wyraznie napisal Cytat Standardem w ANSI SQL jest to by rekordy nie miały wartości NULL. Co za bzdura, to po co NULL jest w standardzie jak ma byc nieuzywany? -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#10
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
wypadałoby pomyśleć :]
naprosciej id|tytul|tresc|mail|typ 1|test|komentarz|cos@cos.pl|1 gdzie 1 oznacza np komentarz do newsów |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 30.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
No dokładnie, chodzi o np. takie przyporządkowanie:
1 -> news 2 -> download 3 -> artykul 4 -> ksiega_gosci 5 -> sonda Ma to jeszcze taką zaletę, że jak stworzę dodatkowe pole, np. takie plusy/minusy, co są na youtube, to nie muszę w 5 tabelach, tylko w jednej ![]() ![]() -------------------- ?>
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Książka:
"PHP i MySQL Tworzenie stron WWW Vademecum Profesionalisty" Optymalizowanie bazy danych, str.316 Cytat Ponadto powinno się dążyć do tego by, tabele zawierały jak najmniej wartości NULL, a klucze podstawowe były jak najkrótsze. Nie mam gorączki ![]() -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#13
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
a czy w moim przykładzie masz chociaż 1 (nawet może być pół) null?
przy dobrym projekcie tabeli możesz i 10 rzeczy wrzucić byleby były ze sobą powiązane w stopniu znacznym |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możecie jeszcze powiedzieć jak to później wybierać? Gdzie ma być przechowywana informacja dla jakiego konkretnie pliku/newsa jest komentarz?
|
|
|
![]()
Post
#15
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
jesli chodzi o moj przyklad to był klejony na szybko zeby wykazac ogolna koncepcje
![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jak ja to czytam, to aż ręce opadają...
Przecież to że mają te same pola, to nie znaczy, że to są te same informacje. Ja nie wiem jak można mieć wszystko w jednym, chyba tak dużo ludzi lubi... Czyżby za dużo siedzieli w bazach bez FK, przecież jak jest komentarz, to aż się prosi o klucz obcy. To mi przypomina dziedziczenie, dom dziedziczy po drzewo, bo przecież oba mają wysokość, itp. bzdury. To jest to samu tu, to są różne komentarze, nie ważne, że mają te same dane, więc każdy rodzaj powinien być w swojej tabeli. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 30.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Hmm, czy ja wiem, jakoś nie widzę tej analogii z dziedziczeniem domu od drzewa oO w końcu one wszystkie są KOMENTARZAMI, a nie tylko mają wspólne pola.
-------------------- ?>
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Kiedyś zrobiłem to tak jak tu opisujecie. Przy czym "typ" nie był liczbą a ciągiem znaków (nazwą modelu) i tak np.:
id | record_id | record_type | body 1 | 232 | News | bla bla 1 | 4424 | Photo | bla bla 1 | 2 | Subpage | bla bla Rozwiązanie dla jednym może eleganckie, dla innych pewnie nie, ale pozwoliło mi na szybkie dodawanie komentarzy do jakiegokolwiek elementu strony. Dodatkowo ograniczyła ilość kodu (chodź jest trochę abstrakcyjny) ale w widoku np. odpalam pomocnika przez
I to samo wyświetla odpowiednie komentarze, dodaje formularz. CO więcej np. jeśli wcześniej nie przewidziałem np. komentowania Podstron serwisu, mogę je wprowadzić w 5 sekund bez dodawania kolejnej tabeli, robienia dla niej modelu, zapytań itd itd. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:53 |