存储自定义/不同的用户数据

时间:2016-07-21 23:34:12

标签: php mysql sql database-design

如果我要创建一个数据收集应用程序,使用户能够收集多种数据类型,那么存储自定义数据的最佳方式是什么?

予。 E.用户1可能想要存储用户名,电子邮件,地址,而用户2可能想要存储用户名,密码和电话号码。

显然,这些数据类型不同,根据基于列的设计,一个表不能适应差异,最适合的方法是什么?

1 个答案:

答案 0 :(得分:3)

这是一种非常常见的情况,因为许多网站都允许您根据需要使用尽可能多的信息填写您的个​​人资料(除了必填字段),因此他们需要灵活的存储空间。立即想到这些选项:

选项1

如果您需要一种快速过滤,排序或以其他方式处理这些属性的方法,数据库表仍然是您最好的选择。您不必担心将不同的数据类型放在同一列中:拥有username列,phone列,email列...当您设计时表,只允许可选字段为NULL,并在您没有​​信息时将其留空。

选项2

如果您只想存储信息,可以使用XMLJSON格式。这些非常灵活,允许您将所需的任何数据存储在单个文件中(每个用户都有匹配的文件),在一个大文件中,或者再次存储在只有id的数据库表中,一个{ {1}}以及将存储数据的通用username列。当您需要数据时,只需打开文件或查询数据库并使用userdatasimplexml_load_string功能解压缩。