Hirdetés
- Yettel topik
- Apple Watch
- Megérkezett a Google Pixel 7 és 7 Pro
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Cseresznyepiros és mokka barna Redmi Note 15-ök az újévre
- One mobilszolgáltatások
- Apple iPhone 11 - népalma
- Xiaomi 15T Pro - a téma nincs lezárva
- Mit várunk 2026-ban a mobilpiacon?
- EarFun Air Pro 4 - a cél a csúcs
Új hozzászólás Aktív témák
-
nyunyu
félisten
És ha jól értem, ugye azt írod, hogy csináljak egy product_category táblát, amibe úgy kerülnének bele a rekordok, hogy ha a fő táblámban (product) mondjuk van 2 millió rekord, és mindegyikhez tartozik 2-4 (átlagban 3) kategória (category). Akkor e szerint a product_category táblában jelen állás szerint 6 millió rekord lenne.
Nem ez a lényeg, hanem az, hogy a kategória táblád párszáz, ezer rekordos lesz csak.
Ezen a string műveletek időigénye még nem tragikus, gyorsan le tudja kérdezni kategórianevekhez tartozó ID-t.
Aztán abból már könnyen joinolja a többmilliós product_category táblát (ha tettél indexet a category_id-re), így hamar megvan a product_id, ami meg szintén külső kulcs, a product tábla elsődleges kulcsára mutat, ami megint csak indexelt, aztán máris megvannak a megfelelő termék rekordjaid.Feltételezem, hogy valami webshop motort hegesztesz, ahol a vevő a termék kategóriára is tudna szabadszövegesen keresni, ezért kell a kategória névre string illesztés.
-
nyunyu
félisten
N:M kapcsolatnak pont az a lényege, hogy külön-külön lekérdezhető mindegyik variációja.
Teszemazt van egy product táblád:
id name
1 alma
2 körte
3 banán
4 szilva
5 narancsvan egy categoryd:
id name
1 piros
2 sárga
3 zöld
4 kék
5 narancssárgaEzeket összerendelő product_category táblád:
product_id category_id
1 1
1 2
1 3
2 2
3 2
4 4
5 1
5 5Ha erre ráuszítod az előző querymet c.name like '%sár%'-ral, akkor ki fogja neked listázni az almát, körtét, banánt, narancsot, mert azok SÁRga vagy narancsSÁRga kategóriásak.
Ha azt akarod kérdezni, hogy melyik az a termék, amiből van sárga és piros is, akkor kétszer kell a product_category-t és a categoryt joinolni, és azokat ANDdal kérdezni:
select p.*
from product p
join product_category pc1
on pc1.product_id = p.id
join category c1
on c1.id = pc1.category_id
join product_category pc2
on pc2.product_id = p.id
join category c2
on c2.id = pc2.category_id
where c1.name = 'sárga' and c2.name = 'piros'
order by p.date desc;Ez már csak az almát találná meg.
Ha ezt írnád:
where c.name = 'sárga'
or c.name = 'piros'
or c.name = 'kék'
vagy az ezzel ekvivalenswhere c.name in ('sárga','piros','kék')
feltételt, akkor az összes sárga vagy piros vagy kék gyümölcs lejönne (alma, körte, banán, szilva)
Narancs nem, mert itt kategórianévre teljes egyezés a feltétel! -
martonx
veterán
"És ha jól értem, ugye azt írod, hogy csináljak egy product_category táblát, amibe úgy kerülnének bele a rekordok, hogy ha a fő táblámban (product) mondjuk van 2 millió rekord, és mindegyikhez tartozik 2-4 (átlagban 3) kategória (category). Akkor e szerint a product_category táblában jelen állás szerint 6 millió rekord lenne."
Ez azért tud gyors lenni, mert ezek mind Foreign Key-ek, azaz indexeltek. Itt tenném még hozzá, hogy sokkal tisztább érzés lenne Kategória ID-re szűrni Name helyett.
Új hozzászólás Aktív témák
- Úgy állhat le a 16 GB-os GeForce RTX 5060 Ti gyártása, hogy közben nem áll le
- Budapest és környéke adok-veszek-beszélgetek
- Mazda topik
- Motoros topic
- CADA, Polymobil, és más építőkockák
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- Autós topik
- Battlefield 6
- Kerékpárosok, bringások ide!
- Boldog Új Évet Kívánunk 2026-ra!
- További aktív témák...
- NVIDIA TITAN RTX 24GB (dobozos) - nagyon furcsa kishibával
- Sony Playstation 5 Slim Digital 825GB + Sony PlayStation Portal Midnight Black - FOXPOST AZ ÁRBAN!
- Skagen 816xswxc1 Ceramics White női karóra
- Philips Sonicare Diamond Clean HX922W ultrahangos elektromos fogkefe + fogkefék
- Mi Vacuum Cleaner mini kézi porszippantó
- HIBÁTLAN iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3840
- magyar billentyűzet - 162 - 163 - Lenovo LOQ (15ARP9) - AMD Ryzen 7 7435HS, RTX 4060
- Wacom Bamboo One CTF-430 rajztábla
- Telefon felvásárlás! Samsung Galaxy A15, Samsung Galaxy A25, Samsung Galaxy A35, Samsung Galaxy A55
- AKCIÓ! Apple Studio Display 27 5K Nanotexturált üveg monitor garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


