Как хранить несколько оценок без повторения строки, против которой рейтинги хранятсянескольких оценок Хранить в одной строке таблицы
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 ставки ПИК как 2 и u3 ставок Pic 3. существуют 3 колонки, необходимые для регистрации каждого рейтинга, и мне нужно 3 строки, чтобы войти каждый рейтинг пользователей для картины, т.е.
user_id pic_id vote_1 vote_2 vote_3
u1 pic_1 u2 u3
Что делать, если есть более 2 рейтингов пользователей, т. е. если тарифы user4 rate 2 и user5 3. Как хранить эти данные и вычислять ggregate?
user_id pic_id v_1 v_2 v_3
u1 pic_1 u2 u3
u1 pic_1 u4 u5
Это займет огромное пространство. Могу ли я использовать запись для хранения значений в форме массива и вычислить совокупность, извлекая результаты из набора?
Спасибо. Тем не менее эта таблица должна содержать разные рейтинги, предоставленные пользователями для pic_id, т. Е. Если 10 пользователей оценивают одно изображение, то это означает 10 строк! Столбцы будут только user_id, pic_id, рейтинг (u1, p1,1; u2, p1,2; u3, p1,3; u4, p1,1). Если оцениваются 20 изображений, то для хранения рейтингов это означает 200 строк, разве нет эффективного решения? – user1940212
Правда, но поскольку эта таблица состоит только из целых чисел, это не будет проблемой с файлами. Перезаписывая это с помощью хранения массивов или добавления нескольких столбцов, будет возрастать сложность, добавить дополнительные накладные расходы и быть менее динамичными в долгосрочной перспективе. – Oli
Возможно, другие пользователи могут предложить альтернативы, но, на мой взгляд, это лучшее решение! – Oli