-2

我面临你可能遇到过的问题,有一个具有正式字段和变量字段的实体,例如考虑一个具有姓名、家庭和状态的 Person 实体,取决于状态值

如果 state=1 则人员必须填写有关教育的信息(许多正式字段和一对多信息)

或者

如果 state=2 那么人必须填写有关健康的信息(许多正式字段和一对多信息)

等等。

在开发过程中可能会更改此条件,并且还添加了 state = 7(保险信息),如果启动条件 state = 7,则用户必须填写!

那么解决这个问题的最佳实践是什么?设计具有舒适扩展、最少更改和易于查询的表

请注意,Xml 文件很难查询(供其他人稍后报告),我暂时忽略了这个解决方案。

谢谢。

4

1 回答 1

1

三种选择:

  1. 提前考虑并尝试预见所需的所有可能字段并将它们编译到您的表中。

假设我们有一张客户的桌子,它可以是个人也可以是公司。

我们会在表格中做这样的事情:

例子:

[Client]
first_name /* person */
last_name /* person */
commercial_name /* corporation */

如果您处理大量数据,这当然会使您生成一个相当大的表。

  1. 您可以将这些“变量值”作为带有引用主表的外键的额外表来处理

例子:

[Person]
person_id
first_name /* person */
last_name /* person */

[Education_info]
person_id /* refrences Person.person_id */
.... /* info */
  1. Wordpress 风格,一张主表,一张“元表”。

例子:

[Person]
person_id
first_name /* person */
last_name /* person */

[Person_meta]
person_id /* references person */
key_name 
key_value

那么您将拥有属于该人的真正可变的元数据。

希望能帮助到你!

于 2015-02-15T07:38:41.220 回答