个人知管中标签的处理

root
abc abc

标签表 每个用户拥有唯一的标签表,标签是公共的,一个标签表里包括若干标签:
1用户_标签对应表:为每个用户分配一个标签表编号-> 2用户标签表:标签表id,标签,使用次数
3全部标签表:标签id 标签字符串 设立者(System),设立时间(auto_true_add),被使用的频次(0)
(这种方案虽然节省存储空间,符合DB设计原则,但不便于后面的全文检索,拟放弃)
因为标签是一种很重要的检索方式,因此需要重新考虑。
标签是公共的,虽然每个用户都可自设标签,但自设的标签也都是公共的。
应建立一个全部标签表1:全部标签表:标签id 标签字符串 设立者(System),设立时间(auto_true_add),被使用的频次(0)
每个用户用了哪些标签(表2): user_id, 标签id(0,), 标签, JSONField:[使用该标签的资源列表],使用的频次(0)
关于标签:用户可创建,但不能修改,用户可删除自定义的标签(因为标签是个字面量)。用户可管理自己的全部标签(自己使用的)。
用户在管理自己的资源对象时,可自行设定标签。
1、(原来的考虑,现决定放弃,改为优化后的方法实现)系统检查其中有无新标签:如有新标签,加到表1中:这还挺浪费数据库访问资源的,因为这是一个经常性的操作。可以不考虑,是否可以将此安排成定时任务。
2、当资源第一创立的时候:将每个标签加入表2:如果是新标签,开始创建。如果是已有标签,将当前资源加入到资源列表。
如果是修改资源:则需要标签有无修改,如有修改则:首先全部删除原来各标签中的资源(从表2中的资源列表字段中)应该:求新与旧标签的交集,删除已经不用的标签,增加新增加的标签。
如何处理分类标签与自定义资源分类器中的标签(先不考虑)?