(这里是Django菜鸟)
对于“项目”模型,我想存储一些数据。这些数据是关于房产的。例如,居住空间的数量,这些空间在哪层,以及这些空间有多大。
因为并不是每个项目对象都有一定数量的生存空间,而有些项目对象也有一个类似于商店空间或餐厅空间的行,所以我想知道一种存储这些数据的好方法。B,因此我想在模型中存储一个动态大小的表。下面是一个很好的例子:
现在,一些项目将只有2个,3个居住空间,没有餐厅等,其他项目将可能有多达10个居住空间。我在考虑创建10行字段。所以我可以输入逗号分隔的值(或者JSONfield)。类似于:
row_01 = models.CharField(max_length=100)
row_02 = models.CharField(max_length=100)
row_03 = models.CharField(max_length=100)
row_etc = models.CharField(max_length=100)
"Livingspace 1","First floor","55"
"Livingspace 2","Second floor","100"
etc发布于 2017-05-16 14:40:47
不,这不是很好的做法。
据我所知,可以使用两个表来包含这些数据。在django中,每个模型对应一个表,字段作为列。所以你只需要做一个房子模型和另一个模型房间与外键关系的房子模型。
一个简单的例子:
class House(models.Model):
name = models.CharField()
class Room(models.Model):
house = models.ForeignKey(House)
room_type = models.CharField()
area = models.CharField()
floor_no = models.IntegerField()由此,每个house模型实例表示一个房子。每个Room实例表示您前面说过的行。通过这样的模型设计,可以使过滤、查询变得非常容易。
房间实例通过外键关系链接到House模型,该关系允许根据所需的规范创建任意数量的行。
要获得更多参考,请尝试使用文档
发布于 2017-05-16 13:18:54
数据库模式的类型取决于您将如何使用该数据。要聚合(和、计数等)的字段(主键除外)、基于它们的查询将直接放置为列,而依赖(动态)于其他列的字段可以进入JSON字段。
考虑到您的用例,JSON可能是一个很好的方法,因为您可能不希望基于每个数据进行查询。
https://stackoverflow.com/questions/44002047
复制相似问题