Come gestiamo le categorie nello schema del database e nelle classi del modello

4

Sto cercando di sviluppare una soluzione di e-commerce, ma mi sono soffermato sul problema della gestione delle categorie e non so come procedere ulteriormente.

Vedi, Una categoria avrà una categoria genitore, che a sua volta può anche puntare a un altro genitore e così via, fino a quando non viene raggiunta la categoria radice. Ho provato a progettare il seguente schema del database,

Ti prego, dimmi se è giusto?

O Esiste un tutorial sulle categorie e sulle categorie principali che può aiutarmi a capire meglio questo scenario?

    
posta Pankaj Upadhyay 01.10.2011 - 16:31
fonte

3 risposte

3

Risposta DB classico: "dipende"

Una domanda:

  • È consentito aggiungere un elemento a qualsiasi categoria, che sia o meno un genitore?
    Cioè, una categoria può avere sotto-categorie o articoli, ma non entrambi?

Se sì, la tua tabella corrente è OK

Se no, allora disporre di una tabella CategoryParent di auto referenziazione separata. La tua categoria attuale diventa figlia di questo.

Ciò limita i tuoi articoli a una categoria di livello più basso, ma consente una gerarchia di categorie.

    
risposta data 01.10.2011 - 17:07
fonte
5

La progettazione della tabella per la gestione delle categorie gerarchiche è corretta. Si tratta di un progetto generico in grado di gestire situazioni in cui non è possibile prevedere esattamente la profondità dell'albero lungo uno qualsiasi dei rami.

Ciò che dovresti prendere in considerazione nel tuo progetto è se hai intenzione di apportare modifiche per aiutarti con gli aspetti pratici della navigazione dei dati gerarchici in un DBMS relazionale.

In la mia risposta a questa domanda I discusso il disegno della gerarchia di categorie.

In la mia risposta a questo altra domanda Fornisco alcune spiegazioni dettagliate su un'implementazione pratica che rende molto più facile lavorare con i dati gerarchici - almeno sul lato della lettura - utilizzando concetti noti come set di insiemi e visitation numeri .

    
risposta data 01.10.2011 - 19:43
fonte
0

Supponendo che la colonna CategoryParent sia la chiave esterna che fa riferimento a id_categoria e presupponendo che la colonna CategoryParent CONSENTE NULL, sei OK.

È utile aggiungere le colonne Chiave esterna con _fk in modo che sia chiaro. Assicurati inoltre che CategoryParent abbia il tipo di dati esatto come chiave primaria.

Blockquote Is there any tutorial on categories and parent categories that can help me understand this scenario better ? Blockquote

Il tuo caso è una tipica relazione autoreferenziale o gerarchica. Questo caso esiste in molti casi diversi dalle categorie, ad esempio negli organigrammi.

Un esempio simile può essere trovato qui: DataModeling

    
risposta data 01.10.2011 - 22:34
fonte

Leggi altre domande sui tag