我有一张桌子说tb_load_files。 它包含字段 file_name,file_date,file_loc,file_status
现在,File_status手杖是x或y。 要求是可以有多个x状态记录组合 (file_name,file_date,file_loc)但只有一个y状态记录。
e.g。
file_name file_date file_loc status abc.txt 12-oct-07 NY X abc.txt 12-oct-07 NY X abc.txt 12-oct-07 NY Y abc.txt 12-oct-07 NY Y -- NOT ALLOWED
设计这些表格的最佳方法是什么?
一个。在插入之前选择数据
湾触发检查是否存在值
或任何其他。
请建议
答案 0 :(得分:1)
如果有数千个条目,我建议不要通过使用具有相同数据的多行来浪费空间,而是添加COUNT列。然后,数据可以是唯一的,如果需要,可以使用索引更好地优化数据。
然后,创建由客户端调用的PL / SQL过程,或者(如果客户端期望使用表)创建可更新视图+ INSTEAD OF INSERT / UPDATE / DELETE触发器。当状态为X时,其中的代码将仅增加现有记录的COUNT,如果状态为Y,则抛出错误。