2

我想存储项目的每个规格的值,但能够随着时间的推移添加新规格而无需修改我的数据库结构。

那就是最终有一个 PHP 数组,它看起来像:

$vase['features'] = array('weight'=>10,'height'=>100);

但是几天之内谁能拥有五十把钥匙。

$vase['features'] = array('weight'=>10,'height'=>100,'price'=>12,'time'=>1821,...);

我通常只会在我的数据库中添加一个表,但我真的不认为添加几十个列会做到这一点。

我想知道是否可以添加一个“规格”列来存储 JSON 数组?我的意思是,我很确定它会成功,但是有什么理由我不应该这样做或任何最佳解决方案吗?

4

3 回答 3

2

如果这些是您不需要直接从数据库访问的字段,也不需要按它们过滤(您需要对此非常确定),那么就可以了。正如您所说,它起作用,但这实际上取决于您项目的细节。

例如价格可能是有问题的,因为您可能希望能够轻松地按价格进行过滤(不是说不能,但它不会像使用表格那样直接)。

我会这样做的方式如下:

  • 包含可轻松扩展的功能列表的表格
  • 包含内容(或产品)的 id、特性的 id 和特性的值的表。

通过这个小小的调整,您可以轻松地列出功能、按功能过滤、按功能分组等,并且仍然能够在以后定义产品的结构。

于 2013-08-11T17:42:59.640 回答
0

如果您不确定数据库表中的确切列数,那么最好将 dat 存储在 JSON 数组中。确保在查询中不需要这些数据按任何顺序排列、分组排列、计数等

于 2013-08-11T17:44:15.823 回答
0

您可能会问自己一个问题:您是否需要对您的值(如选择、过滤、连接等)使用 SQL 进行操作?如果是,您不能使用 json 对象或序列化 php,应该创建另一个表。

于 2013-08-11T17:48:02.743 回答