【发布时间】:2013-12-13 16:27:09
【问题描述】:
我需要将运算符及其值存储到数据库中,因为之后,在循环中,我必须进行价格计算的比较。
这些值来自一个很少问问题的 HTML 表单,即:
问题:有多少项?
答案:<(选择选项) 10(文本框)
问题:什么时候?
答案:= (选择选项) 2013-12-13 (文本框)
将这两个值存储到包含多个问题的表字段中的最佳方法是什么?
使用 PHP 运算符和值进行序列化?
存储字符串< 10 或= 2013-12-13?
如果你知道更好的技术,请告诉我。
我的 MySQL 表是
CREATE TABLE answers(
id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
answer_1 VARCHAR(50),
answer_2 VARCHAR(50),
answer_3 VARCHAR(50),
...
);
更新
我错过了帖子的重要部分,我更新了问题:我的表格作为多个答案字段。
【问题讨论】:
-
两个字段。
operator和value。不要试图将它们粉碎成一个单一的领域。 -
抱歉,我错过了帖子的重要部分(现已更新),我的表格作为多个答案字段,我无法为每个答案添加运算符和值字段。希望我已经解决了我的问题。
-
存储数据的方式不仅在将数据添加到数据库时很重要,而且在何时以及如何使用它时也很重要。您将添加什么样的数据也非常重要。我的直觉反应是建议将它们存储为逗号分隔的字符串,以便您可以使用 PHP 的
explode和implode来处理数据......但如果其中任何一个值可以包含逗号,这将不起作用.如果没有,您需要对数据进行清理以确保它没有那么好。 -
感谢@Toote,您已确认我的解决方案。表单不是那么灵活——不同的字段、数据类型、没有对问题或答案的引用——据我所知,这是存储此类数据的一个很好的折衷方案。