Domanda

Sto creando un sito Web di blog online e per ogni post di blog, vorrei che l'utente fosse in grado di creare / modificare / eliminare la propria categoria in modo da poter classificare il proprio post.

Qual è generalmente considerato un buon progetto di database per le categorie generate dall'utente?

Questo è il design del mio tavolo proposto. (C'è un nome per questo tipo di db?)

user_table
id_utente (pk), nome_utente

CATEGORY_TABLE
category_id (pk), nome_categoria

USER_CATEGORIES
user_id (fk), category_id (fk)

Grazie per l'aiuto. Sono sicuro che ci sia un post da qualche parte a riguardo, ma non sono riuscito a trovarlo. Se questo è un duplicato, per favore fatemi sapere e rimuoverò questa domanda.

È stato utile?

Soluzione

Questa è una relazione da molte a molte. Ciò consentirebbe a ciascun utente di avere potenzialmente diverse categorie e ogni categoria di avere potenzialmente molti utenti diversi. Questo sembra un modello utile per quello che stai cercando di fare.

Altri suggerimenti

Penso che il tuo schema abbia un bell'aspetto. Mantieni le etichette di categoria in una tabella per evitare duplicazioni e poi assegni i loro ID agli utenti.

Se quello che stai cercando di fare è avere " private " categorie per ciascun utente, allora va bene. Se d'altra parte si suppone che le categorie siano pubbliche (come tag nello stackoverflow), allora si può prendere in considerazione un'altra opzione: non memorizzare la relazione utente & Lt; - & Gt; categoria, invece aggiungere il campo use_counter alla tabella delle categorie e usa i trigger per incrementarla quando viene utilizzata la categoria (la voce del blog è classificata) o diminuirla quando è " liberata " (la voce del blog è stata eliminata / la sua categoria è stata rimossa). Quando use_counter raggiunge 0, rimuovi la categoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top