Mysql-də cədəvli daha optimal və sürətli etməyə çalışıram. Bir məsələdə çətinlik çəkirəm.
Fərz edək ki xəbər cədvəli yaradıram. Burda bir xəbər eyni anda bu bölmələrdə görünə bilər “slayd, yaxşılar, foto qalereya, video qalereya, seçilmişlər). İndi bu bölmələrin hərəsi üçün cədvəldə ayrı sütun (column) yaratmalıyam? Daha yaxşı həlli yoxdu bu işin?
Məsələn belə etmək istəmirəm:
1. select * from xeber where slayd=1
2. select * from xeber where yaxsilar=1
3. select * from xeber where foto=1
Bütün bu malumatı bir sütun daxilində (məsələn: tip) saxlamaq istəyirəm. Belə olan halda bazaya sorğu necə gedəcək bilmirəm. Çünki bir xəbər eyni anda müxtəlif yerdə görünə bilər.
Verilmiş cavablar və yazılan şərhlər (6 cavab var)
0
bir sütün daxilində hər birini xüsusi simvollarla ayıra bilərsiniz, məsələn
http://pastebin.com/sxkYYJgf
Sorğunu da ki, like ‘%yaxsilar%’ və.s kimi vermək olar
0
like nəticə etibari ilə bir tərəfdən məsələni həll etsədə sürəti azaldır. mən sütunların sayını elə sürətə görə azaltmaq istəyirəm
0
Düşündükcə cox variantlar tapmaq olar ilk ağlıma gələn bu oldu.
Bazaya sorğu göndərərkən bölmələri rəqəmlə adlandırırıq
məs:
1=slayd;
2=yaxsilar və s.
Insert into xeber set tip=intval($tip)
sorğunu çekərkən ise
select * from xeber where tip > 0 (bütün bölmələr görünsün)
select * from xeber where tip = 1 (yalnız slayd bölmesinde olan xəbərlər görünsün)
Optimize cəhətdən isə cədvəldə yalnız sizə lazım olan məlumatları çəkin
select * from əvəzine select tip,name və s. from
sorğuda limit qoyun . əgər size yalniz 1 melumat lazımdırsa Limit 1
Sürəti ən çox lənqidən ise RAND() , like ‘%yaxsilar%’ kimi əmrlərdir.
0
Mən bu varinatda istəmirəm axı. Bu variantda etsəm bir xəbəri eyni anda müxtəlif tiplərdə sorğu göndərib alamaq omur ki. Məsələn id-si 1 olan xəbər həm salyda həm də yaxşılarda görünməlidi. əgər … tip=1 göstərsəm bu ancaq slayd olar yox əgər …. tip=2 etsəm onda yaxşılara aid olacaq.
0
bele olar
əgər bölmə çoxdursa where – ni bir deyişenede ata bilersiz.
0
Elə ola bilməz axı. bir xəbərin tipi necə həm 1 həm də 2 edə bilərəm? Mənə tipi 1 və 2 olan xəbərlər yox. Bir xəbərə necə iki tip verib onu sonra sorğu ilə almaqdır
Sual verin
Cavab verin