>  Q&A  >  본문

java - Springboot를 이용하여 구축한 웹어플리케이션 실행시 데이터베이스 테이블을 자동으로 생성하여 사용할 수 있나요?

1. 먼저 전제에 대해 이야기해 보겠습니다.
Hibernate가 사용되며, spring-boot-starter-data-jpa가 pom에 추가됩니다.
개발 도구입니다. IDEA입니다.

저는 웹 개발을 해본 적도 없고, 데이터베이스에 대해서도 잘 모르기 때문에 아래에서 말씀드리고 싶은 내용이 혹시 현실적이지 못한 상황이나 구현 방법이 좋지 않은 경우에는 꼭 알려주시기 바랍니다. 조언 좀 부탁드립니다. 감사합니다! !

2. 충족하고 싶은 요구 사항:

예를 들어,

이 데이터베이스에 여러 학교의 여러 학생 정보를 입력해야 합니다.
데이터의 양이 매우 클 수 있으며, 같은 테이블에 너무 많은 학생 정보를 넣고 싶지 않습니다.
제 생각은
각 학교에 "XX학교 학생 정보 테이블"(tbl_School_XX, 예: "tbl_School_01")이 있고, 그 테이블에 해당 학교의 학생 정보를 입력하는 것입니다.
자체 학교 인덱스 테이블(tbl_School_Index)을 적용합니다. 이 테이블에는 각 학교의 테이블 이름(예: "tbl_School_01")을 저장하는 인덱스 필드(예: 인덱스)가 있습니다.
·새 학교의 학생 정보를 입력하려는 경우 학교를 추가할 때 애플리케이션이 자동으로 새로운 "XX 학교 학생 정보 테이블"을 생성하고 애플리케이션이 자동으로 테이블 이름을 지정합니다(예: "tbl_School_01"). 이 새 테이블을 사용하여 새 학교의 학생에 대한 정보를 저장합니다. 동시에 이 테이블 이름은 학교 인덱스 테이블(tbl_School_Index)의 인덱스 필드(index)에도 추가됩니다.
·학생 정보를 읽고 싶을 때, 기존 학교의 신입생 정보를 입력하고 싶을 때, 학교 인덱스 테이블(tbl_School_Index)에서 인덱스 필드(index)(예: "tbl_School_01")의 데이터를 찾습니다. ), 읽기/쓰기 테이블 tbl_School_01.

사진과 같이


3. 현재 겪고 있는 어려움은 다음과 같습니다.

(1) 관계형 데이터베이스는 테이블 내에 테이블을 허용하지 않는다는 것을 알고 있으므로 이러한 방법이 실현 가능하거나 적절한지 모르겠습니다.

(2) 새 엔터티 클래스(@Entity)를 생성할 때 속성과 get/set 메서드를 구성한 후 애플리케이션을 실행하면 데이터베이스에 해당 테이블이 생성되지만 해당 테이블을 생성할 필요는 없습니다. 학교가 추가되면 해당 엔터티 클래스에 해당하는 테이블이 동적으로 생성됩니다.

4. 기타 아이디어

여러 학교의 모든 학생들의 정보를 하나의 테이블에 넣은 다음 그 테이블에 "학교" 필드를 추가하여 학생이 어느 학교 출신인지 표시하려고 생각했지만 데이터 양이 많아지면 걱정됩니다. , 이 표를 사용하면 다양한 문제가 발생할 수 있습니다.

5. 제가 말한 내용이 좀 장황할 수도 있습니다. 주의 깊게 읽어주셔서 감사합니다. 조언을 해주셨으면 좋겠습니다. 감사합니다!

仅有的幸福仅有的幸福2684일 전1349

모든 응답(1)나는 대답할 것이다

  • 学习ing

    学习ing2017-07-05 10:48:15

    새 학교의 학생 정보를 입력하려는 경우 학교를 추가하면 애플리케이션이 자동으로 새로운 "XX 학교 학생 정보 테이블"을 생성하고 애플리케이션은 자동으로 테이블 이름을 지정합니다(예: "tbl_School_01"). 이 새 테이블은 새 학교의 학생들의 정보를 저장하기 위한 것입니다. 동시에 이 테이블 이름은 학교 인덱스 테이블(tbl_School_Index)의 인덱스 필드(index)에도 추가됩니다.

    우선 현재 설명에 따르면(현재 설명에는 교차 테이블 작업이 필요한 일부 작업이 포함되어 있지 않음) 학생을 추가할 때 학교가 존재하지 않는 경우 학교 색인을 삽입해야 합니다. 새 관련 테이블을 생성합니다. 이는 코드로 수행할 수 있습니다(애플리케이션을 다시 시작하지 않고도 수행할 수 있음). 아는 사람이 있으면 알려주십시오. 알아요. 감사합니다.

    (2) 새 엔터티 클래스(@Entity)를 생성할 때 속성과 get/set 메서드를 구성한 후 애플리케이션을 실행하면 데이터베이스에 해당 테이블이 생성되지만 해당 테이블을 생성할 필요는 없습니다. 학교가 추가되면 해당 엔터티 클래스에 해당하는 테이블이 동적으로 생성됩니다.

    여기서 말하는 것은 애플리케이션을 다시 시작할 수 있다는 것입니다. 애플리케이션을 다시 시작할 수 있으면 구성을 통해 데이터를 삽입하고 테이블을 자동으로 생성할 수 있다는 것입니다. 최대 절전 모드를 구성하고 해당 SQL 스크립트를 리소스 아래에 넣어야 합니다.

    application.properties에서 최대 절전 모드 구성

    으아악

    SQL 스크립트 저장소

    회신하다
    0
  • 취소회신하다