|
| Kategorier og subkategorier Fra : Sinkbæk |
Dato : 10-08-02 13:27 |
|
Hej!
Hvordan løser jeg lettest problemet med at have flere forskellige
hovedkategorier og dertilhørende underkategorier?
Mit problem er at jeg fx har 10 hovedkategorier og til næsten alle
kategorierne hører der underkategorier - hvordan styrer jeg det bedst? - det
skal også siges at jeg i min database har en tabel: produkter, som
indeholder produkterne, samtidig skal den indeholde kategori og
underkategori.
Jeg vil gerne se/læse eksempler på hvordan du plejer at gøre, når du laver
kategoriseringer med php/mysql.
--
Med venlig hilsen
Thomas Sinkbæk
www.sinkbaek.com
- Broder Salsa: "København det er altid kokos"
| |
Tonni Aagesen (10-08-2002)
| Kommentar Fra : Tonni Aagesen |
Dato : 10-08-02 13:34 |
|
"Sinkbæk" <thomas@--FJERN_DETTE--sinkbaek.com> skrev i en meddelelse
news:aj30q5$kgf$1@sunsite.dk...
> Jeg vil gerne se/læse eksempler på hvordan du plejer at gøre, når du laver
> kategoriseringer med php/mysql.
Du skal nok kigge på normalisering i databaser, der er en udemærket artikel
med eksempler om emnet på:
< http://www.phpbuilder.com/columns/barry20000731.php3>
--
Mvh
Tonni Aagesen
<agent29 AT stofanet DOT dk>
| |
Anders Johannsen (11-08-2002)
| Kommentar Fra : Anders Johannsen |
Dato : 11-08-02 16:56 |
|
>Hvordan løser jeg lettest problemet med at have flere forskellige
>hovedkategorier og dertilhørende underkategorier?
En simpel træstruktur, som tillader et vilkårligt antal niveauer af
kategorier kan beskrives således i SQL:
CREATE TABLE category (
id int,
parent int REFERENCES category,
name text,
PRIMARY KEY(id)
);
Antag følgende testdata:
INSERT INTO category (id,parent,name) VALUES(1, NULL, 'Tøj');
INSERT INTO category (id,parent,name) VALUES(2, NULL, 'Sko');
INSERT INTO category (id,parent,name) VALUES(3, 2, 'Ecco');
INSERT INTO category (id,parent,name) VALUES(4, 2, 'Lloyd);
Alle hovedkategorier vil kunne udlæses som
SELECT name FROM category WHERE parent IS NULL;
-- Tøj
-- Sko
Kategorier under en bestemt kategori findes som
SELECT name FROM category WHERE parent = 2;
-- Ecco
-- Lloyd
(utestet)
/A
| |
TH (11-08-2002)
| Kommentar Fra : TH |
Dato : 11-08-02 22:43 |
|
Hej,
> En simpel træstruktur, som tillader et vilkårligt antal niveauer af
> kategorier kan beskrives således i SQL:
Lige et tillægsspørgsmål:
Antag fx. at man skulle kunne registrere fx. "Company" på hver enkelt sko
(Blot for at nævne eet eksempel). Åbenlyst ville et felt "Company" være
DB-mæssigt uhensigtsmæssigt da "Company" ikke har relavans i fx kategorien
"Sko".
Mao med din struktur ville man så lave et id fx. "CompanyID" og referere til
en ny tabel "Company" (Går ud fra vi er enige så langt)...Lad os forestille
os et nyt felt i "category" nemlig "CompanyID" og en ny tabel "Company" med
felterne "ID" og "Name".
Så til mit tillægsspørgsmål:
HVIS vi antager at ikke alle sko-mærker har et tilknyttet "Company"...mao
ikke har reference i tabellen "Company"...hvordan henter du så alle sko med
alle data?
Fx. "select category.name, company.name from category, company where
category.parent=2 and category.companyid=company.id"
Ovenstående ville netop ikke hente de sko som ikke har tilknytning til
company...
?
/TH
| |
|
|