我正在考虑如何在SQL Server数据库中表示复杂的结构.
考虑一个需要存储一系列对象细节的应用程序,这些对象共享一些属性,但有许多其他属性不常见.例如,商业保险计划可能包括同一保单内的责任,汽车,财产和赔偿保险.
在C#等中实现它是微不足道的,因为您可以创建一个带有Sections集合的Policy,其中Section是根据各种类型的封面所需继承的.但是,关系数据库似乎不容易这样做.
我可以看到有两个主要选择:
为所有可能的变体创建一个Policy表,然后是一个Sections表,其中包含所需的所有字段,其中大部分都是null.
创建一个Policy表和许多Section表,每个表对应一种封面.
这两种替代方案似乎都不令人满意,特别是因为必须在所有Sections中编写查询,这将涉及大量连接或大量空检查.
这种情况的最佳做法是什么?
sql database inheritance database-design class-table-inheritance
我正在定义我的Django模型,我意识到OneToManyField模型字段类型中没有.我确定有办法做到这一点,所以我不确定我错过了什么.我基本上有这样的事情:
class Dude(models.Model):
numbers = models.OneToManyField('PhoneNumber')
class PhoneNumber(models.Model):
number = models.CharField()
Run Code Online (Sandbox Code Playgroud)
在这种情况下,每个都Dude可以有多个PhoneNumbers,但关系应该是单向的,因为我不需要知道PhoneNumber它Dude拥有它本身,因为我可能有很多不同的对象拥有PhoneNumber实例,例如Businessfor例:
class Business(models.Model):
numbers = models.OneToManyField('PhoneNumber')
Run Code Online (Sandbox Code Playgroud)
我会OneToManyField在模型中用什么替换(哪些不存在)来表示这种关系?我来自Hibernate/JPA,宣布一对多的关系就像:
@OneToMany
private List<PhoneNumber> phoneNumbers;
Run Code Online (Sandbox Code Playgroud)
我怎么能在Django中表达这个?