mezök összevonása
Sziasztok!
Valamit nem értek a mysql müködésében.
Van 3 mezöm ev, ho, nap. Erre csináltam egy indexet datum neven.
amikor kérek egy sort:
select * from table where datum > 20060101
akkor azt a választ kapom, hogy nincs datum mező.
Az tényleg nincs, de van ilyen index. Hogy kell
megfogalmaznom a lekérdezést?
koka.
■ Valamit nem értek a mysql müködésében.
Van 3 mezöm ev, ho, nap. Erre csináltam egy indexet datum neven.
amikor kérek egy sort:
select * from table where datum > 20060101
akkor azt a választ kapom, hogy nincs datum mező.
Az tényleg nincs, de van ilyen index. Hogy kell
megfogalmaznom a lekérdezést?
koka.
Index <> mező
Ha ilyen mezőid vannak, akkor miért nem ilyenre hivatkozol?
Ahogy működne a select:
Poetro
<Nincs cím>
Ha ilyen mezőid vannak, akkor miért nem ilyenre hivatkozol?
Ahogy működne a select:
SELECT * FROM table WHERE ev > 2006 AND ho > 1 AND nap > 1
mert a WHERE datum > 20060101 szebb. :-P
Koka.
:)
koka: ha nincs különösebb indokod arra, hogy külön tárold az évet, hónapot, napot, akkor vagy date típusú mezőt használj, vagy unix timestampet, ami valójában egy egész szám.
gex
<Nincs cím>
Eh, nem dátumrol van szó, csak egyszerüsiteni akartam a kérdést.
Forum.
témacsoport ID
téma ID
beirás ID
a három együtt azonositja egyértelmüen a beirást.
Persze tudom ugy is, hogy
WHERE tcsID = n AND tID = n AND bID = n
de ha ki szeretném fejezni egy beirás egyértelmü azonositoját,
akkor $id = $tcsID.$tID.$bID és ekkor
WHERE id = $id;
Azt hittem az indexre is lehet WHERE, de ha nem akkor mi értelme
van az ilyen összekapcsolás lehetöségének?
Koka.
mi is az az index...
téma ID
beirás ID
a három együtt azonositja egyértelmüen a beirást.
ha jól gondolom, az ID azonosítót takar, de akkor a beírás azonosításához miért nem elég a beírás ID?
van az ilyen összekapcsolás lehetöségének?
az index nem mezők összekapcsolására szolgál, hanem lekérdezések gyorsítására.
gex
re: mezök összevonása
mert nem egyedi. egy téma harmadik beirása nem harmadik az összes témacsoport, összes téma, összes beirásában.
Igen, már sejtem. :-)
Köszönöm a válaszokat, azt hiszem a CONCAT megfelelö lesz nekem.
Koka.
a helyedben...
valamint még azt is megjegyezném, hogy szerintem felesleges a bejegyzéshez letárolni a témacsoport azonosítóját. a bejegyzéshez tartozó téma azonosító egyértelműen azonosítja magát a témacsoportot is, ha egy témához csak egy témacsoport köthető.
táblák:
témacsoport:
- csoport_id
- csoport
- ...
téma:
- téma_id
- csoport_id
- téma
- ...
bejegyzés:
- bejegyzés_id
- téma_id
- bejegyzés
- ...
gex
<Nincs cím>
témacsoport:
- csoport_id
- csoport
- ...
téma:
- téma_id
- csoport_id
- téma
- ...
bejegyzés:
- bejegyzés_id
- téma_id
- bejegyzés
Igen, megfontolandó amit irsz, lényegében még csak a tervezésnél tartok, bármikor vátoztathatom a strukturát.
Nekem most igy van:
témacsoport:
- sorszam auto increment
- csoport_id - index egyedi
- csoport
- bennelevő téma darabszám // hátha kell valamire
téma:
- sorszam auto increment
- csoport_id -- index |
-------------------------|-- index egyedi
- téma_id - index -----|
- téma
- bennelevő beirás darabszám // háha kell valamire
bejegyzés:
- sorszam auto increment
- csoport_id --- index |
- téma_id ------- index |-- index egyedi
- bejegyzés_id - index |
- bejegyző
- bejegyzés
Az egyedi indexek biztositják a konzisztenciát, azt nem tudom mi van,
ha törlésre, vagy áthelyezésre kerül egy bejegyzés. Nem lesz ilyen. :-)
A bejegyzés->sorszám is lyukas lesz, ha törölnek egy bejegyzést, nem?
Koka.
de
erre írtam azt, hogy azt nem kell mysql-ben tárolni, hanem majd amikor generálod az oldalt, akkor számolod ki.
gex
<Nincs cím>
igen, majd a generálás megirásánál kiderül, hogy hogy egyszerübb,
legfeljebb kiveszem. :-) köszi a segitséget.
Koka.
Javítás
--------
Poetro
lpad...
gex
Csak úgy dátum ügyben...
Tehát pl.:
SELECT ... FROM table WHERE ev*10000+ho*100+nap > 20060102
Hm? :D
hmmmm
gex