在向MySQL数据库中的子类型添加外键时保持完整性
随着系统变得越来越复杂,我遇到了MySQL数据库的一个特殊问题 我们需要的功能要求我们有一个带有在向MySQL数据库中的子类型添加外键时保持完整性,mysql,sql,database,foreign-keys,relational-database,Mysql,Sql,Database,Foreign Keys,Relational Database,随着系统变得越来越复杂,我遇到了MySQL数据库的一个特殊问题 我们需要的功能要求我们有一个带有表单的数据库 表单有多个子类型:仓单和卡车表单 每种类型的表单都可以有许多自定义字段 将来,可能还有其他表也可以有自定义\u字段 当然,自定义字段有许多自定义字段值 这是对我想法的粗略描述 forms ---- id type_id //fk to types id bin_forms ---- id form_id //fk to forms id type_id //fk to forms t
表单的数据库
表单
有多个子类型:仓单
和卡车表单
每种类型的表单
都可以有许多自定义字段
将来,可能还有其他表也可以有自定义\u字段
当然,自定义字段
有许多自定义字段
值
这是对我想法的粗略描述
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
所以我的问题是关于最佳实践
将检查约束添加到外部对象可以吗
键,因为类型
表基本上是静态的
当子类型由于是子类型表而已经显式时,使用类型表是否是一种良好的做法
我该如何为将来允许另一个表(比如widgets
)运行做好准备
使用自定义字段
?可能将表单
更改为类型化表单
,使其成为
表单
,那么小部件有许多表单
?可能是一些密集设计的重复。非常好地回答了我的问题,谢谢。一旦我有了这样做的名声,我就会投票。