Django Balise de modèle de conception

Je me demandais si la suivante est la bonne manière de créer le système d'étiquetage pour les images et d'être en mesure de rendre un nuage de tags:

from django.db import models

class Tag(models.Model):
    word        = models.CharField(max_length=35)
    slug        = models.CharField(max_length=250)
    created_at  = models.DateTimeField(auto_now_add=False)

    def __unicode__(self):
        return self.word

class Photo(models.Model):
    slug                = models.CharField(max_length=250)
    filename            = models.CharField(max_length=200)
    extension           = models.CharField(max_length=4)
    size                = models.IntegerField()
    ...
    tags                = models.ManyToManyField(Tag)

    def __unicode__(self):
        return self.slug

Remarque que ma table de base de données comprendra des millions de lignes et chaque image aura 4-8 balises.

Veuillez en informer.

Je sais que c'est tout à fait il ya un moment, mais pourriez-vous nous expliquer pourquoi vous mettez une balle de terrain dans la Balise? Je veux dire, quel est le but. Sincèrement curieux.
La façon dont je le fais pour gagner de la place sur la base de données est d'utiliser des valeurs séparées par une virgule exemple mac,windows,linux, depuis que la photo aura lui-même les balises et l'habitude de les utiliser pour de plus amples purpouses.

OriginalL'auteur azio | 2012-11-10