【发布时间】:2014-06-14 23:16:12
【问题描述】:
我有一张表 materials,其中包含(我正在使用 web2py):
materials_db.define_table('materials',
Field('name','string'),
Field('reference','string'),
Field('manufacturer','string'),
Field('date_added','date'),
Field('density','double'), # Density - kg/m³
Field('emissivity','double'),
Field('specific_heat','double'), # Specific Heat - kJ/kg.K
Field('thermal_conductivity','double') # Thermal conductivity - W/m.K
)
我现在想创建一个表constructions。每个结构都是以有序方式组合任意数量的材料,例如像这样:
+------------+-------+
| Material | Layer |
+------------+-------+
| Concrete | 1 |
| Airgap | 2 |
| Insulation | 3 |
| Plaster | 4 |
+------------+-------+
Layer 应该能够更改构造中材料的位置。建筑将具有新的属性,这些新属性将根据所用材料的属性和建筑内的位置进行计算。
我真的不知道如何去做。 layer 在构造中的值必须是唯一的,但显然在构造之间不能唯一,即每个构造都可以有一个值为 1 的层。
我是否需要为每个构造创建一个新表,然后在我的表 constructions 中引用所有这些表?这是我目前唯一模糊的想法,但这似乎不太正确......有没有好的方法?
【问题讨论】:
-
刚刚在我的答案中添加了第三部分“将被计算的属性”。你不想要那些在你的数据库中。从查询中获取它们。
标签: sql database-design relational-database