gpt4 book ai didi

django - 如何为邮政地址建模

转载 作者:行者123 更新时间:2023-12-03 11:01:13 25 4
gpt4 key购买 nike

我需要对邮政地址进行建模,该地址可以包含多行街道地址,城市,州(省)和邮政编码。该国家被省略。

我需要在街道地址中保留换行符,但仍然能够搜索地址。

我看到两种方法:

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

或将街道地址存储在单个文本字段中但使用特殊的分隔符来编码换行符的代码:

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

就代码的可读性和效率(或其平衡)而言,最佳方法是什么?

最佳答案

除非您的大多数地址都具有多行街道部分(并且有很多行),否则我会选择后者,将其全部存储在一个字段中,而不用担心其他模型。如果大多数多行地址只有两行,请考虑在“地址”模型中创建street和street2字段(您可以为这两个“street”字段选择更多描述性名称)。第一个将存储第一条街道线,第二个字段将存储所有其他线(用换行符分隔)。我认为在搜索地址时,通常会在包含街道号码的地址行上进行搜索,因此也许在程序逻辑中,您将确保街道号码行始终存储在第一个“街道”字段中,然后可以在数据库中添加索引。

另一方面,如果您的大多数地址将具有多行街道部分,并且具有多于两行,那么创建第二个模型是有意义的。

如果您不事先知道,并且不介意将来可能“迁移”,请选择较简单的模型。否则,请进行两种模型的设计。

关于django - 如何为邮政地址建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7700487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com