mirror of https://github.com/hykilpikonna/AquaDX
[chuni] fix unique key constraint , fix #1
parent
342decb087
commit
20422b130f
|
@ -14,7 +14,7 @@ import java.io.Serializable;
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@Entity(name = "ChuniUserCharacter")
|
@Entity(name = "ChuniUserCharacter")
|
||||||
@Table(name = "chuni_user_character")
|
@Table(name = "chuni_user_character", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "character_id"})})
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -33,6 +33,7 @@ public class UserCharacter implements Serializable {
|
||||||
@JoinColumn(name = "user_id")
|
@JoinColumn(name = "user_id")
|
||||||
private UserData user;
|
private UserData user;
|
||||||
|
|
||||||
|
@Column(name = "character_id")
|
||||||
private int characterId;
|
private int characterId;
|
||||||
|
|
||||||
private int playCount;
|
private int playCount;
|
||||||
|
|
|
@ -14,7 +14,7 @@ import java.time.LocalDateTime;
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@Entity(name = "ChuniUserCharge")
|
@Entity(name = "ChuniUserCharge")
|
||||||
@Table(name = "chuni_user_charge")
|
@Table(name = "chuni_user_charge", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "charge_id"})})
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -33,6 +33,7 @@ public class UserCharge implements Serializable {
|
||||||
@JoinColumn(name = "user_id")
|
@JoinColumn(name = "user_id")
|
||||||
private UserData user;
|
private UserData user;
|
||||||
|
|
||||||
|
@Column(name = "charge_id")
|
||||||
private int chargeId;
|
private int chargeId;
|
||||||
|
|
||||||
private int stock;
|
private int stock;
|
||||||
|
|
|
@ -13,7 +13,7 @@ import java.time.LocalDateTime;
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@Entity(name = "ChuniUserCourse")
|
@Entity(name = "ChuniUserCourse")
|
||||||
@Table(name = "chuni_user_course")
|
@Table(name = "chuni_user_course", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "course_id"})})
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -29,6 +29,7 @@ public class UserCourse {
|
||||||
@JoinColumn(name = "user_id")
|
@JoinColumn(name = "user_id")
|
||||||
private UserData user;
|
private UserData user;
|
||||||
|
|
||||||
|
@Column(name = "course_id")
|
||||||
private int courseId;
|
private int courseId;
|
||||||
|
|
||||||
private int classId;
|
private int classId;
|
||||||
|
|
|
@ -13,7 +13,7 @@ import java.time.LocalDateTime;
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@Entity(name = "ChuniUserDuel")
|
@Entity(name = "ChuniUserDuel")
|
||||||
@Table(name = "chuni_user_duel")
|
@Table(name = "chuni_user_duel", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "duel_id"})})
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -29,6 +29,7 @@ public class UserDuel {
|
||||||
@JoinColumn(name = "user_id")
|
@JoinColumn(name = "user_id")
|
||||||
private UserData user;
|
private UserData user;
|
||||||
|
|
||||||
|
@Column(name = "duel_id")
|
||||||
private int duelId;
|
private int duelId;
|
||||||
|
|
||||||
private int progress;
|
private int progress;
|
||||||
|
|
|
@ -14,7 +14,7 @@ import java.io.Serializable;
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@Entity(name = "ChuniUserItem")
|
@Entity(name = "ChuniUserItem")
|
||||||
@Table(name = "chuni_user_item")
|
@Table(name = "chuni_user_item", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "item_id", "item_kind"})})
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -34,8 +34,10 @@ public class UserItem implements Serializable {
|
||||||
private UserData user;
|
private UserData user;
|
||||||
|
|
||||||
// Kind ,Type
|
// Kind ,Type
|
||||||
|
@Column(name = "item_kind")
|
||||||
private int itemKind;
|
private int itemKind;
|
||||||
|
|
||||||
|
@Column(name = "item_id")
|
||||||
private int itemId;
|
private int itemId;
|
||||||
|
|
||||||
private int stock;
|
private int stock;
|
||||||
|
|
|
@ -14,7 +14,7 @@ import java.io.Serializable;
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@Entity(name = "ChuniUserMap")
|
@Entity(name = "ChuniUserMap")
|
||||||
@Table(name = "chuni_user_map")
|
@Table(name = "chuni_user_map", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "map_id"})})
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -43,6 +43,7 @@ public class UserMap implements Serializable {
|
||||||
@JoinColumn(name = "user_id")
|
@JoinColumn(name = "user_id")
|
||||||
private UserData user;
|
private UserData user;
|
||||||
|
|
||||||
|
@Column(name = "map_id")
|
||||||
private int mapId;
|
private int mapId;
|
||||||
|
|
||||||
private int position;
|
private int position;
|
||||||
|
|
|
@ -14,7 +14,7 @@ import java.io.Serializable;
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@Entity(name = "ChuniUserMusicDetail")
|
@Entity(name = "ChuniUserMusicDetail")
|
||||||
@Table(name = "chuni_user_music_detail")
|
@Table(name = "chuni_user_music_detail", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "music_id", "level"})})
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -50,6 +50,7 @@ public class UserMusicDetail implements Serializable {
|
||||||
@JoinColumn(name = "user_id")
|
@JoinColumn(name = "user_id")
|
||||||
private UserData user;
|
private UserData user;
|
||||||
|
|
||||||
|
@Column(name = "music_id")
|
||||||
private int musicId;
|
private int musicId;
|
||||||
|
|
||||||
private int level;
|
private int level;
|
||||||
|
|
|
@ -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`);
|
|
@ -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;
|
Loading…
Reference in New Issue