我有以下设置:
有 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 }
}
我可以计算切片项目:*,但由于最终的一致性,这可能是错误的方法。