我有一个动态表单,可以创建一些生成值的输入,并应保存到数据库中。每组值应单独保存在数据库中名为“Education”的单个字段中:
应该像这样存储:
+--------+---------+----------+--------+--------+--------+--------+-----+
| id | name | Education |
+--------+---------+----------+--------+--------+--------+--------+-----+
| 100 | John | [Harvard, Marketing,2009,2014] [MIT,CS,2005,2009] |
+--------+---------+----------+--------+--------+--------+--------+-----+
| 101 | Daniel | [TEC, Marketing,2009,2014] [Standford,CS,2001,2005]|
+--------+---------+----------+--------+--------+--------+--------+-----+
教育领域最多可以有10套价值,我只是显示2套。
请查看JSFIDDLE,看看它是如何运作的: http://jsfiddle.net/YueX2/6/
如何在编辑单组值时将其存储到数据库中并将其保存到数据库中,只更新给定的值集?
此外,这是最好的方法吗?
答案 0 :(得分:2)
这不是解决此问题的最佳方法。你最好制作2张桌子。
表用户:
+--------+---------+
| id | name |
+--------+---------+
表教育:
+--------+----------+------------+-------+-----+------+
| id | location | discipline | start | end | user |
+--------+----------+------------+-------+-----+------+
作为education.user,您可以从用户表中保存外键users.id。输入表单的实现一方面更复杂,但是你没有每个用户的委托限制,也没有数据库中过多的开销。
答案 1 :(得分:2)
在设计称为规范化的数据库时,有一种做法可以引导您找到最佳方法。根据您的问题和jsFiddle,您最终会得到2个单独的数据库表。
Ex:tbl_Users
:包含
userID
userName
然后你会得到另一个表格Ex:tbl_Education
,其中包含一些字段,例如
record_id
userID
schoolName
在此表中,您可以在userID
字段中设置特定用户ID,该字段必须与userID
中的tbl_Users
字段匹配,然后才能与他们参加的单个学校相匹配schoolName
字段。如果他们上过多所学校,他们会在tbl_Education
表中有多个条目,但tbl_Users
表中只有一个条目。如果需要检索数据,则需要在join
字段的两个表和User_id
上执行SQL查询。这将导致返回多个记录,但需要所有数据。
任何特定于他们教育的特定部分的信息都会放在tbl_Education
表格中,任何特定于用户的内容(头发颜色,眼睛颜色,身高等)都会出现在{{1}中} table。
Ex SQL查询:
tbl_Users
WHERE子句本质上是两个表之间的连接。有很多方法可以编写这个查询,我使用的方法在视觉上最容易看到发生了什么。
以下是规范化的维基百科链接,以帮助您入门。 http://en.wikipedia.org/wiki/Database_normalization