comment modéliser une adresse postale

J'ai besoin de modéliser une adresse postale qui peut avoir plusieurs lignes de l'adresse de la rue, la ville, l'état (province), et le code postal. le pays est omis.

J'ai besoin de conserver les sauts de ligne dans la rue adresses, mais encore être en mesure de rechercher les adresses.

Je vois deux façons de le faire:

class Address(models.Model):
    street = models.ForeignKey('StreetAddress')
    city = models.TextField()
    province = models.TextField()
    code = models.TextField()
class StreetAddress(models.Model):
    line_number = models.IntegerField()
    text = models.TextField()

ou bien celle-ci qui stocke l'adresse de la rue dans un champ de texte unique, mais qui utilise des caractères de séparation spéciaux pour coder les sauts de ligne:

class Address(models.Model):
    street = models.TextField()
    city = models.TextField()
    province = models.TextField()
    code = models.TextField()

quelle est la meilleure façon de le faire en termes de lisibilité du code et de l'efficacité (ou de leur solde)?

OriginalL'auteur akonsu | 2011-10-08