/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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










Søg
Reklame
Statistik
Spørgsmål : 177503
Tips : 31968
Nyheder : 719565
Indlæg : 6408541
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste