Jump to content
php.lv forumi

datubāzes struktūra


Aleksandrs

Recommended Posts

Kāds būtu labākais(ātrāk izpildāmas) variants priekš MyISAM tabulu struktūras?

 

Paraugs #1:

user tabula: id|uid|user_name|pass|info

 

Paraugs #2:

user_id tabula: id|uid

user tabula: uid|user_name

user_pass tabula: uid|pass

user_info tabula: uid|info

 

Paraugs #3:

user tabula: id|uid|user_name|pass

user_info tabula: uid|info

 

Lauku tipi:

id - mediumint(8) unsigned; uid - mediumint(8) unsigned; user_name - varchar(20); info - text

 

Lauku īpašības:

id - primary,auto_increment; uid - primary; visiem - No NULL

 

Select`i galveno kārt būs:

Noskaidrot vai konkrētajam lietotājam atbilst konkrētā parole

Pēc user_name, uid izvilkšana

Pēc uid, user_name izvilkšana

Pēc uid, user_name un info izvilkšana

 

Kādi ieteikumi?

Link to comment
Share on other sites

#2 ir galīgs sviests.

#3 ir jēdzīgs tikai tad, ja tajā info glabāsi bildes

#1 ir way to go!

Atliek tikai pareizus indeksus uzlikt:

 

Noskaidrot vai konkrētajam lietotājam atbilst konkrētā parole (user_name, user_pass)

Pēc user_name, uid izvilkšana (user_name)

Pēc uid, user_name izvilkšana (uid PRIMARY KEY)

Pēc uid, user_name un info izvilkšana (uid PRIMARY KEY)

Edited by bubu
Link to comment
Share on other sites

bra, viņš parādija kuriem laukiem kādus indeksus salikt(skat. iekavas)...

 

bubu, bet ja lauku daudzums vienā tabulā ir ap 30, un to selecti notiek 3x mazāk nekā selecti izvilkt pēc uid, user_name vai šādā gadijumā user_name nebūtu jāuztaisa atsevišķa tabula?

Edited by Aleksandrs
Link to comment
Share on other sites

man vienaa tabulaa ir 24 lauki un probleemu nekaadu. viss atkariigs no indeksaacijas :) un ko tu katraa selectaa panjem,

ja tew waik tikai pass tad:

SELECT `pass` FROM `tabula` WHERE `uid` = 2

ja viak info tad

SELECT `info`, `cic_lauks`, `veel_cic_lauks` FROM `tabula` WHERE `uid` = 2

tad tikai masiivs augs ... galvenais ir indeks ..

Link to comment
Share on other sites

Lielas jau problēmas nebūs, bet es gribu izprast kā pareizi tabulas taisīt, ja pieprasijumi tai tabulai ir ļoti lieli, piemēram skaitītāju sistēmā...

 

SELECT b.info FROM tabula a, tabula2 b WHERE a.uid=b.uid AND a.name='Vards'

 

1. Cik daudz šajā gadijumā B tabulas lauku daudzums var ietekmēt SELECT izpildi?

2. Cik liela nozīme ir, ka tabulā tikai INT veidīgi lauki vai VARCHAR veidīgi lauki?

Tos labāk maisīt kopā vai atdalīt ar tabulām?

Link to comment
Share on other sites

×
×
  • Create New...