如何存储多个评级而不重复存储评级的行
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');
用户 1 上传一张图片,它可以被评为 1,2 或 3。然后用户 2 将图片评分为 2,u3 将图片评分为 3。记录每个评分是否需要 3 列,我是否需要 3 行来记录每个用户评分对于图片,即
user_id pic_id vote_1 vote_2 vote_3
u1 pic_1 u2 u3
如果有超过 2 个用户评分,即 user4 评分 2 和 user5 评分 3 怎么办。如何存储这些数据并计算聚合?
user_id pic_id v_1 v_2 v_3
u1 pic_1 u2 u3
u1 pic_1 u4 u5
这将占用巨大的空间。我可以使用记录以数组的形式存储值并通过从集合中提取结果来计算聚合吗?