[chuni] fix unique key constraint , fix #1

pull/1/head
samnyan 2020-01-19 23:08:59 +08:00
parent 342decb087
commit 20422b130f
9 changed files with 108 additions and 7 deletions

View File

@ -14,7 +14,7 @@ import java.io.Serializable;
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "ChuniUserCharacter")
@Table(name = "chuni_user_character")
@Table(name = "chuni_user_character", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "character_id"})})
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -33,6 +33,7 @@ public class UserCharacter implements Serializable {
@JoinColumn(name = "user_id")
private UserData user;
@Column(name = "character_id")
private int characterId;
private int playCount;

View File

@ -14,7 +14,7 @@ import java.time.LocalDateTime;
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "ChuniUserCharge")
@Table(name = "chuni_user_charge")
@Table(name = "chuni_user_charge", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "charge_id"})})
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -33,6 +33,7 @@ public class UserCharge implements Serializable {
@JoinColumn(name = "user_id")
private UserData user;
@Column(name = "charge_id")
private int chargeId;
private int stock;

View File

@ -13,7 +13,7 @@ import java.time.LocalDateTime;
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "ChuniUserCourse")
@Table(name = "chuni_user_course")
@Table(name = "chuni_user_course", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "course_id"})})
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -29,6 +29,7 @@ public class UserCourse {
@JoinColumn(name = "user_id")
private UserData user;
@Column(name = "course_id")
private int courseId;
private int classId;

View File

@ -13,7 +13,7 @@ import java.time.LocalDateTime;
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "ChuniUserDuel")
@Table(name = "chuni_user_duel")
@Table(name = "chuni_user_duel", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "duel_id"})})
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -29,6 +29,7 @@ public class UserDuel {
@JoinColumn(name = "user_id")
private UserData user;
@Column(name = "duel_id")
private int duelId;
private int progress;

View File

@ -14,7 +14,7 @@ import java.io.Serializable;
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "ChuniUserItem")
@Table(name = "chuni_user_item")
@Table(name = "chuni_user_item", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "item_id", "item_kind"})})
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -34,8 +34,10 @@ public class UserItem implements Serializable {
private UserData user;
// Kind ,Type
@Column(name = "item_kind")
private int itemKind;
@Column(name = "item_id")
private int itemId;
private int stock;

View File

@ -14,7 +14,7 @@ import java.io.Serializable;
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "ChuniUserMap")
@Table(name = "chuni_user_map")
@Table(name = "chuni_user_map", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "map_id"})})
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -43,6 +43,7 @@ public class UserMap implements Serializable {
@JoinColumn(name = "user_id")
private UserData user;
@Column(name = "map_id")
private int mapId;
private int position;

View File

@ -14,7 +14,7 @@ import java.io.Serializable;
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "ChuniUserMusicDetail")
@Table(name = "chuni_user_music_detail")
@Table(name = "chuni_user_music_detail", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "music_id", "level"})})
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -50,6 +50,7 @@ public class UserMusicDetail implements Serializable {
@JoinColumn(name = "user_id")
private UserData user;
@Column(name = "music_id")
private int musicId;
private int level;

View File

@ -0,0 +1,21 @@
ALTER TABLE `chuni_user_character`
ADD UNIQUE KEY `UK_chuni_user_character` (`user_id`, `character_id`);
ALTER TABLE `chuni_user_charge`
ADD UNIQUE KEY `UK_chuni_user_charge` (`user_id`, `charge_id`);
ALTER TABLE `chuni_user_course`
ADD UNIQUE KEY `UK_chuni_user_course` (`user_id`, `course_id`);
ALTER TABLE `chuni_user_duel`
ADD UNIQUE KEY `UK_chuni_user_duel` (`user_id`, `duel_id`);
ALTER TABLE `chuni_user_item`
ADD UNIQUE KEY `UK_chuni_user_item` (`user_id`, `item_id`, `item_kind`);
ALTER TABLE `chuni_user_map`
ADD UNIQUE KEY `UK_chuni_user_map` (`user_id`, `map_id`);
ALTER TABLE `chuni_user_music_detail`
ADD UNIQUE KEY `UK_chuni_user_music_detail` (`user_id`, `music_id`, `level`);

View File

@ -0,0 +1,72 @@
CREATE TABLE chuni_user_music_detail_new (
id INTEGER,
full_chain INTEGER NOT NULL,
is_all_justice BOOLEAN NOT NULL,
is_full_combo BOOLEAN NOT NULL,
is_lock BOOLEAN NOT NULL,
is_success BOOLEAN NOT NULL,
level INTEGER NOT NULL,
max_chain INTEGER NOT NULL,
max_combo_count INTEGER NOT NULL,
miss_count INTEGER NOT NULL,
music_id INTEGER NOT NULL,
play_count INTEGER NOT NULL,
res_accept_count INTEGER NOT NULL,
res_request_count INTEGER NOT NULL,
res_success_count INTEGER NOT NULL,
score_max INTEGER NOT NULL,
score_rank INTEGER NOT NULL,
user_id BIGINT REFERENCES chuni_user_data (id) ON DELETE CASCADE,
PRIMARY KEY (
id
),
CONSTRAINT chuni_user_music_detail_uq UNIQUE (
level,
music_id,
user_id
)
);
INSERT INTO chuni_user_music_detail_new (
id,
full_chain,
is_all_justice,
is_full_combo,
is_lock,
is_success,
level,
max_chain,
max_combo_count,
miss_count,
music_id,
play_count,
res_accept_count,
res_request_count,
res_success_count,
score_max,
score_rank,
user_id
)
SELECT id,
full_chain,
is_all_justice,
is_full_combo,
is_lock,
is_success,
level,
max_chain,
max_combo_count,
miss_count,
music_id,
play_count,
res_accept_count,
res_request_count,
res_success_count,
score_max,
score_rank,
user_id
FROM chuni_user_music_detail;
ALTER TABLE chuni_user_music_detail RENAME TO bak_chuni_user_music_detail;
ALTER TABLE chuni_user_music_detail_new RENAME TO chuni_user_music_detail;