我有一个在创建时知道实体类型的应用程序。因此,我不知道如何正确链接相关模型,但我认为它像
- 将类型嵌入到 json 字段中作为 Entity 的属性
- 在“固定”表之间有一些关系(见下文)
e_type 字段是一个简单的 CharField,根据它的值,我查询 Type_a 或 Type_b。
这就是它现在在 django 中的样子
class Entity(models.Model):
name = models.CharField(max_lenght=64)
e_type = models.CharField(max_lenght=1)
class Type_a(models.Model):
entity = models.OneToOneField(Entity)
attribute = models.CharField(max_lenght=64)
class Type_b(models.Model):
entity = models.OneToOneField(Entity)
attribute = models.CharField(max_lenght=64)
你有什么建议?
谢谢
编辑:响应为什么有多个表 - 每个 e_type 裁判到不同的表结构。例如 type_a 有四个字段,type_b 有十个字段等等。拥有一个 json 字段很简单,因为它可以存储任何数据,因此不需要多个表,每个表都有自己的结构。我可以看到的另一种选择是使用 EAV 之类的东西。