MySQL但不知道前面的列名

Bil*_*obs 6 php mysql

我正在构建一个PHP/MySQL应用程序,我允许用户创建自己的自定义(尽可能多的)配置文件数据(即他们可以添加任何数量的信息到他们的配置文件与其他文本框,但有一个"核心"用户配置文件字段集)

例如,他们可以在表单上创建一个新的文本框,并将其称为"我的宠物"和/或"我最喜欢的颜色".我们需要将这些数据存储在数据库中,并且显然无法为每个选项创建列,因为我们不知道他们的附加信息是什么.

我们认为我们可以存储他们提供的所有"addidional信息"的一种方式是将他们的附加信息存储为JSON并将其存储在MySQL文本字段中(我喜欢MySQL :))

我已经看过Wordpress表单构建器插件,你可以在其中创建自己的字段,所以我认为他们必须以某种方式将数据存储在MySQL中,因为NoSQL解决方案超出了这些插件的范围.

我很想坚持使用MySQL但是你们认为像MongoDB/Redis这样的NoSQL解决方案会是一个更好的解决方案吗?

谢谢

Ray*_*Ray 1

您可以创建一个键值对表,其中存储不在核心中的任何内容。该表如下所示:user_id、name_of_user_specified_field、user_specified_value;

任何开始大量显示的 name_of_user_specified_field 都可以添加到核心表中。这称为实体属性值。请注意,有些人认为这是一种反模式。

如果您这样做,请添加控件以限制用户可以创建的新条目的数量,否则您可能会发现有人用大量字段填充您的数据库:)