我想用PHP开发一个具有以下特性的应用程序
我已经完成了UI部分和表单设计器。
问题
我想不出如何设计接受表单提交的数据库,例如,如果用户创建了一个包含以下字段的表单
但是以后用户可以在不影响数据库设计的情况下添加或删除字段。
请帮助我进行MySQL数据库设计,以便将表单存储到表中并提交.
发布于 2012-07-09 07:14:43
就像这样:
CREATE TABLE forms (
form_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, -- the UID of this form
owner INT, -- the user who "owns" the form
PRIMARY KEY (form_id)
);
CREATE TABLE fields (
form_id BIGINT UNSIGNED NOT NULL,
field VARCHAR(10), -- the field name
PRIMARY KEY (form_id, field),
FOREIGN KEY (form_id) REFERENCES forms (form_id)
);
CREATE TABLE submissions (
submission_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
form_id BIGINT UNSIGNED NOT NULL,
field VARCHAR(10),
value BLOB, -- stores PHP's serialize($var)
PRIMARY KEY (submission_id),
FOREIGN KEY (form_id) REFERENCES forms (form_id),
FOREIGN KEY (form_id, field) REFERENCES fields (form_id, field)
);我建议修改表单的设计在数据库中创建一个新的(副本)表单,以避免任何基于旧设计的历史提交无效。
https://stackoverflow.com/questions/11390296
复制相似问题