日期:2014-05-17  浏览次数:20705 次

一条信息的元素数量可变,数据库表结构该如何设计进行保存?
将文件的信息保存到数据库中,但是在文件信息录入的时候,用户是可以在页面上添加或删除文件信息元素的。也就是说文件信息的“字段”的数量是可变的,这种情况数据库表结构应该如何设计呢?
现在想到的就是将文件信息的所有元素拼成一个字符串,保存到数据库中的一个字段中,还有其他方式解决这个数量可变的问题吗?
如果是用拼接的方式,那这个字符串应该是以什么形式来保存呢?求类似的例子~

------解决方案--------------------
用拼接的方式。至于字串的形式,可以参考 http request 地址中的多参数形式。当然有个前提,用户在添加一文件信息元素即新增一个字段时,必须输入该字段的“字段名”,即作为“参数名”。
------解决方案--------------------

拼接太儿科了,可以设计成动态的。

设计两个表

表A
id column flag

表B (columnid = 表A.id)
id columnid value

比如目前的文件中有3列
name sex mail
张三 男 z.com
李四 女 l.cn

那表A中存的是
id column flag
1 name 1
2 sex 1
3 mail 1

表B存的是
id columnid value
1 1 张三
1 2 男
1 3 z.com
2 1 李四
2 2 女
2 3 l.cn

文件更改变成另外两列
name age
张三 22
王五 33

变更后表A
id column flag
1 name 1
2 sex 0
3 mail 0
4 age 1

表B
id columnid value
1 1 张三
1 4 22
2 1 王五
2 4 33