 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
badtiger
Data înscrierii: 03/Noi/2006
Mesaje: 233
|
| Trimis: Mar Noi 13, 2007 12:52 pm Titlul subiectului: normalizare |
|
|
Pt un site (site+baza de date) care are integrat un blog/forum este buna normalizarea bazei de date in ceea ce priveste stocare userilor care au postat?
Mai exact sa nu am 100 de gigel in tabela de posturi, daca gigel a postat de 100 de ori, ci sa am 100 de [UID a lui gigel]
Cele 2 situatii la care ma gandesc sunt:
1] incarcare bazei de date, deci ar trebui normalizata (optimizata)
2] interogarile pt a afla userii sa cada mai greu in balanta decat 1]
<post reeditat; motiv:ambiguitate> |
|
| Sus |
|
beeuser
Data înscrierii: 20/Mai/2004
Mesaje: 389
|
| Trimis: Mar Noi 13, 2007 2:02 pm Titlul subiectului: |
|
|
Cateodata ii mai bine sa lasi numele decat id-ul.
Eu personal folosesc id-uri pentru chei straine.
Dar exista situatii in care este mai bine sa ocupe mai mult spatiu baza de date (cand nu folosesti chei straine), dar interogarile sa dureze mai putin (pentru ca nu mai faci join). Asta de obicei in cazul in care trebuie sa faci un join intre mai multe tabele cu multe inregistrari. Si apoi ai grija la indecsi, chei straine, cum definesti structura tabelei. |
|
| Sus |
|
badtiger
Data înscrierii: 03/Noi/2006
Mesaje: 233
|
| Trimis: Mar Noi 13, 2007 2:36 pm Titlul subiectului: |
|
|
ok. merci de sfat.
Cred ca pt inceput am sa las nenormalizat si apoi in functie de evolutia site-ului voi normaliza daca va fi nevoie. :D |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1763
Locație: Sibiu
|
| Trimis: Mar Noi 13, 2007 4:41 pm Titlul subiectului: |
|
|
Eu iti recomand sa gandesti baza de date de la inceput cu cat mai putine informatii redundante. Gandeste-te ca un camp de tip varchar ascii cu valoarea 'gheorge' sa zicem ocupa 9 octeti (8 caractere de cate 1 octet + octetul \0 de final), iar daca e utf papa de 2 ori mai mult (2 octeti/caracter), in timp ce un int (cat ar fi un index) iti papa 4 octeti, iar un mediumint 2. Plus ca m-ar mira sa iti afecteze un join performanta in asa hal. In schimb fragmentarea informatiei in baza de date sigur ti-o afecteaza serios.
//LE: plus ca o sa te chinui serios sa rearanjezi baza de date odata ce e plina de informatie. |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 634
Locație: Drobeta Turnu Severin
|
| Trimis: Mar Noi 13, 2007 6:12 pm Titlul subiectului: |
|
|
@mihaitha, cat de mare si incurcata trebuie sa fie tabela ca cei cca 20 de octeti in plus sa conteze atat de mult. Ma gandesc ca "username" nu se poate modifica niciodata. Doar pentru spatiu sa ma complic !? Merita ?
Am incercat sa pun furnizorii asa (fara ID) si a trebuit sa renunt la tot si sa refac. Da' aici parca-i alta treaba ! |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|