在将外键添加到MySQL数据库中的子类型时保持完整性

时间:2014-09-18 00:46:48

标签: mysql sql database foreign-keys relational-database

随着系统变得越来越复杂,我遇到了MySQL数据库的特定问题。

我们需要的功能要求我们拥有一个forms的数据库。

forms有多种子类型:bin-formstruck-forms

每种类型的form都可以有多个custom_fields

将来可能会有其他表格也可以custom_fields

当然,custom_fields有很多custom_field_values

所以这里粗略描述了我的想法。

forms
----
id
type_id //fk to types id 

bin_forms
----
id
form_id //fk to forms id
type_id //fk to forms type_id (check = 1)

truck_forms
----
id
form_id //fk to forms id
type_id //fk to forms type_id (check = 2)

types
----
id

custom_fields
----
id
type_id //fk to types id

custom_field_values
----
id
custom_field_id //fk to custom_fields id
form_id //fk to forms id

所以我的问题是关于最佳实践。

向外部添加检查约束是否可以 密钥,因为types表几乎都是静态的?

当子类型由于它们是子类型表而已经明确时,有一个types表是不错的做法?

我如何准备未来,允许另一个表格,比如说widgets 使用custom_fields?也许将forms更改为typed_forms,将其作为子类型 forms,然后是widgets has many forms

0 个答案:

没有答案