С PostgreSQL можно сделать это через ключевое слово ВОЗВРАТА:
INSERT INTO mytable( field_1, field_2,... )
VALUES ( value_1, value_2 ) RETURNING anyfield
Это возвратит значение "anyfield". "anyfield" может быть последовательностью или нет.
Для использования его с JDBC сделайте:
ResultSet rs = statement.executeQuery("INSERT ... RETURNING ID");
rs.next();
rs.getInt(1);
Две упомянутые вами «системы голосования», как мне кажется, служат двум разным целям: голосование и оценка . Голосование за вопрос означает нечто иное, чем оценку продукта в 5 звезд. Голосование за / против кажется более целесообразным на таких сайтах, как SO или Digg, тогда как оценку чего-либо звездочками, вероятно, лучше применить к продукту или песне.
Сказав это, я думаю, что звезды легче понимают большее количество людей. человек.
Игра в голосование Уильяма Паундстоуна - отличная книга, которую я недавно прочитал. Он исследовал практически все опробованные системы голосования и проанализировал их. Охватывается все, от политических выборов до систем голосования на веб-сайтах. (Хоторнот обсуждается подробно). Я очень рекомендую это.
Я хочу отметить, что, если вы достаточно разобрались с магазином приложений для iPhone, вы заметите, что многие пользователи голосуют против (1 звезда вместо 5 звезд) соглашения с явным светящийся обзор. Сначала я подумал, что это ненормальное явление, но теперь я видел это сотни раз.
Так что стиль «тик вверх» против «тик вниз» имеет большой смысл в свете этой тенденции.