我有以下设置:
有 CF 项目和 CF 关键字。
每个项目都有零个、一个或多个关键字,存储在列中。
每个关键字都有一个或多个项目,存储在列中。
它看起来像这样:
项目 { dl { 名称 => DELL6400,关键字:1 => 计算机,关键字:2 => DELL,关键字:3 => 畅销产品} hp { 名称 => HP12345,关键字:1 => 计算机,关键字:2 => HP } 没有 { 名称 => 诺基亚8210,关键字:1 => 电话,关键字:2 => 诺基亚 } } // 这里我只存储项目的键, // 实际上,我已经对大多数项目列进行了非规范化 关键字{ 计算机 { 网页 => www.domain.com/computer , item:dl => dl , item:hp => hp } DELL { 网页 => www.domain.com/dell , item:dl => dl } 畅销书 { 网页 => www.domain.com/top , item:dl => dl } HP { 网页 => www.domain.com/hp , item:hp => hp } NOKIA { 网页 => www.domain.com/nokia , item:no => no } 电话 { 网页 => www.domain.com/phone ,项目:否 => 否 } }
当我添加新项目时,如果需要,我会在关键字中添加“网页”列。
当我删除一个项目时,我正在删除列“item:xx”以及
问题是如何避免“空”关键字,例如如果我删除诺基亚项目“no”:
关键字{ ... 诺基亚 { 网页 => www.domain.com/nokia } 电话 { 网页 => www.domain.com/phone } }
我可以计算切片项目:*,但由于最终的一致性,这可能是错误的方法。