2014-04-18 5 views
0

J'ai la situation suivante. Mon projet Django a le modèle suivantdjango et modélisation d'une base de données

class Doctor(models.Model): 
    #some doctor specific fields 

J'ai aussi un tha modèle était comme ça

class Category(models.Model): 
    name = models.CharField(max_length = 15) 
    color = models.CharField(max_length = 7) 

Ainsi, chaque catégorie a un nom et une couleur spécifique. On m'a demandé de faire ce qui suit. Chaque médecin a sa propre phrase mais les couleurs sont toujours les mêmes. Je ne suis pas sûr que ce soit possible. Est-ce? Si je fais

class Doctor(models.Model): 
    #some doctor specific fields 
    category = models.ForeignKey(Category) 

alors chaque médecin pourrait avoir ses propres catégories, mais pour la même catégorie que nous pourrions avoir des couleurs différentes. Cela peut-il être fait au niveau db? Ou dois-je le faire par programme? Si c'est fait par programme mon DB devrait vérifier au moment de la sauvegarde ou en tapant si la catégorie existe déjà et s'il choisit automatiquement la couleur de la catégorie correcte?

Quelle serait la meilleure façon de l'implémenter? Comme je pense à cela, il a besoin d'une vérification frontale et back-end une pour le frontend tout en tapant et une pour le back-end en vérifiant la DB pour voir si la catégorie existe déjà. Mais je n'aime pas comment cela sonne.

Répondre

1

Et si vous aviez trois modèles? i.e .:

class Doctor(models.Model): 
#some doctor specific fields 
category = models.ForeignKey(Category) 

class Category(models.Model): 
name = models.CharField(max_length = 15) 
color = models.ForeignKey(CategoryColor) 

class CategoryColor(models.Model): 
color = models.CharField(max_length = 7) 

Ensuite, chaque médecin aurait une catégorie, et chaque catégorie aurait une catégorieCouleur. Si la catégorie existe déjà, vous utiliserez la catégorie existante et sa catégorie correspondante, sinon elle créerait une nouvelle catégorie et une catégorie correspondante.

+0

Merci @Alex cela semble assez bon. Je vérifierais! – Apostolos

Questions connexes