将信息作为序列化数据存储在Mysql中或作为单独的字段存储

时间:2012-04-07 11:03:26

标签: mysql database-design

我对MySql上的数据存储有疑问,存储这样的东西的更好方法是:

我正在尝试创建一个应用程序,用户可以在其中存储不同的可自定义表单字段,例如如果我需要一个联系表单,我可以使用From textfield,Subject下拉字段,Message textarea字段创建一个表单,同样可以创建一个具有不同表单元素的不同表单。另外,用户可以在字段中设置名称,值或其他表单属性。

但是,存储这条信息的更好方法是什么,以便检索创建动态表单以便用户轻松更改内容以及使用它们?

我只能考虑两种存储方式:

  1. 在具有类似id,form,element,name,value

    等模式的表中
      

    element_id | form_id |元素|名字|价值|
      1 | 1 | textfield |到| null |
      2 | 1 |选择框|主题|一般,支持|

  2. 作为表中的字段,数据类型为BLOB,可以存储为序列化数据

  3. 请告知。感谢。

2 个答案:

答案 0 :(得分:1)

好吧,我自己不喜欢在我的设计中使用序列化数据。但这实际上取决于你将用它做的事情。

我发现this blog article描述了起伏,这可能对你的决定有所帮助。

答案 1 :(得分:0)

我有一个好主意,但它涉及不同的表格。 首先创建一个包含字段id,field_name的表Form_fields 第二个表具有id,属性的属性 第三个表具有id,form_field_id和attribute_id的Field_attributes。这是一个关系表。现在用php和mysql做后端。