如何存储多个评级而不重复存储评级的行
create table pic_table
(user_id varchar2(10) not null,
pic_id number not null,
pic_snap bfile,
rating number,
constraint snp_pk primary key (pic_id));
insert into pic_table
values(u1,p1, bfilename('GIF_FILES', 'PIC_1'),'JPEG');
User1上传一张图片,它可以被评为1,2或3.然后user2将pic评为2,u3评级为pic 3.记录每个评级需要3列,我需要3行才能记录图片的每个用户评级,即
user_id pic_id vote_1 vote_2 vote_3
u1 pic_1 u2 u3
如果有超过2个用户评级,即如果user4评级为2,用户5评级为3,该怎么办?如何存储这些数据并计算汇总数?
user_id pic_id v_1 v_2 v_3
u1 pic_1 u2 u3
u1 pic_1 u4 u5
这将占用巨大的空间。我可以使用记录以数组的形式存储值,并通过从集合中提取结果来计算聚合吗?
答案 0 :(得分:0)
使用以下字段创建表'评级':
user_id (int)
pic_id (int)
rating (int)
我建议将user_id和pic_id组合成一个主键。
在这张桌子上进行所有计算,你应该没有空间麻烦..