如果我要创建一个数据收集应用程序,让用户能够收集多种数据类型,那么存储自定义数据的最佳方式是什么?
I。E.用户1可能想要存储用户名、电子邮件、地址,而用户2可能想要存储用户名称、密码和电话号码。
显然,这些数据类型是不同的,根据基于列的设计,一个表无法适应这些差异,那么适应这种差异的最佳方式是什么?
这是一种非常常见的情况,因为许多网站都允许您在个人资料中填写尽可能多或尽可能少的信息(除了必填字段),因此它们需要灵活的存储。这些选项立刻浮现在脑海中:
选项1
如果你需要一种快速筛选、排序或以其他方式处理这些属性的方法,DB表仍然是你的最佳选择。你不需要担心将不同的数据类型放在同一列中:有一个username
列、一个phone
列、一个子email
列。。。在设计表时,只允许可选字段为NULL
,当您没有信息时,将其留空。
选项2
如果您只想存储信息,可以使用XML
或JSON
格式。这些非常灵活,可以将您想要的任何数据存储在单独的文件中(每个用户都有匹配的文件)、一个大文件中,或者再次存储在只有id
、username
和通用userdata
列的DB表中,这些列将存储数据。当您需要数据时,只需打开文件或查询数据库,然后使用simplexml_load_string
或json_decode
函数对其进行解压缩即可。