mysql数据库对象关系映射_MySQL
bitsCN.com
mysql数据库对象关系映射
1.对“对象关系映射”的理解
a.对象:可以理解为java中的类
b.关系:可以理解为数据库的表
c.映射:这是因为java中的数据的类型与数据库的数据类型是有些不同的,如何将java中的类型的数据用数据库中的数据类型来存储起来,这就映射。
同时,还有当java中的两个对象之间是有关系的,那么在存储在数据库中时,也需要用一种方式来体现出这种存在的关系,而不能是两个
不相关的两张表,这也需要映射出来这种关系。
2.表与表之间的关系类型可以分为以下四种:
多对一,一对多,多对多,一对一
3.分别对这四处种关系进行示例说明
a.多对一(一对多和多对一,其实是看的角度不同,实际上可以看成同一种)员工与部门之间的关系
有以下两个java对象:
对象类:
[java] Department int id; String name; Set employees=new HashSet(); Employee int id; String name; Department dept;
员工与部门,这两者是典的多对一的关系,多个员工可以属于同一个部门,一个部门中可以有多个员工。
注意:在实际开发时,如果要设计一个员工管理系统,那么在进行对象实体类的设计时,就是按照上面
设计方式来设计员工类和部门类。在员工 类中有一个Department dept属性,而没有直接用int dept_no,
因为样更加符面象对象的设计思想。
对应的数据库的表为:
[sql] create department( id int primary key, name varchar(20) ); [sql] create employee( id int primary key, name varchar(20), dept_id int, constraint dept_id_FK foreign key(dept_id) references department(id) );
注:两个表之间的关系,多对一,用外键来体现。一般外键的应该放在多的一方,在这里也就是放在employee员工表中。
b.多对多的关系 学生与老师之间的关系
java类对象:
[java] Teacher int id; String name; Set students=new HashSet(); Student int id; String name; Set teachers=new HashSet();
对应的数据库中的表:
[sql] create table teacher( id int primary key, name varchar(20) ); create table student( id int primary key, name varchar(20) );
注:对于多对多的关系,应该创建第三张表来保存两张表的映射关系
[sql] create table student_teacher( student_id int, teacher_id int, constraint student_teacher_PK primary key(student_id,teacher_id), constraint student_id_FK foreign key(student_id) references student(id), constraint teacher_id_FK foreign key(teacher_id) references teacher(id) );
第三张中的主键是以前两张表的主键作为复合主键,并分别以两张表的主键作为外键。
c.一对一的关系 人与身份证之间的关系
java类对象:
[java] Person int id; String name; IdCard ic; IdCard int id; String address;
对应的数据库表为:
[sql] create table person( id int primary key, name varchar(20) ); create table idcard( id int primary key, address varchar(40), constraint id_FK foreign key(id) references person(id) );
注:对于一对一关系的两张表,分主表与从表,从表的存在必须依赖于主
表,主表可以不依赖于从表。从表的设计上其主键字段同时也是外键字段。
备注:有时在设计表时,会特意把两张表合在一张表中,虽然会造成
数据冗余,但是却可以不因为联表查询而造成查询性能有所降低。这是用
空间来换时间的做法。
bitsCN.com

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

MySQL 및 Phpmyadmin은 강력한 데이터베이스 관리 도구입니다. 1) MySQL은 데이터베이스 및 테이블을 작성하고 DML 및 SQL 쿼리를 실행하는 데 사용됩니다. 2) PHPMYADMIN은 데이터베이스 관리, 테이블 구조 관리, 데이터 운영 및 사용자 권한 관리에 직관적 인 인터페이스를 제공합니다.

Oracle은 데이터베이스 회사 일뿐 만 아니라 클라우드 컴퓨팅 및 ERP 시스템의 리더이기도합니다. 1. Oracle은 데이터베이스에서 클라우드 서비스 및 ERP 시스템에 이르기까지 포괄적 인 솔루션을 제공합니다. 2. OracleCloud는 AWS와 Azure에 도전하여 IAA, PAAS 및 SAAS 서비스를 제공합니다. 3. E-BusinessSuite 및 FusionApplications와 같은 Oracle의 ERP 시스템은 기업이 운영을 최적화하는 데 도움이됩니다.

MySQL에서 외국 키의 기능은 테이블 간의 관계를 설정하고 데이터의 일관성과 무결성을 보장하는 것입니다. 외국 키는 참조 무결성 검사 및 계단식 작업을 통해 데이터의 효과를 유지합니다. 성능 최적화에주의를 기울이고 사용할 때 일반적인 오류를 피하십시오.

MySQL과 Mariadb의 주요 차이점은 성능, 기능 및 라이센스입니다. 1. MySQL은 Oracle에 의해 개발되었으며 Mariadb는 포크입니다. 2. MariaDB는 높은 하중 환경에서 더 나은 성능을 발휘할 수 있습니다. 3. Mariadb는 더 많은 스토리지 엔진과 기능을 제공합니다. 4.MySQL은 듀얼 라이센스를 채택하고 MariaDB는 완전히 오픈 소스입니다. 선택할 때 기존 인프라, 성능 요구 사항, 기능 요구 사항 및 라이센스 비용을 고려해야합니다.

SQL은 관계형 데이터베이스를 관리하는 표준 언어이며 MySQL은 SQL을 사용하는 데이터베이스 관리 시스템입니다. SQL은 CRUD 작업을 포함한 데이터베이스와 상호 작용하는 방법을 정의하는 반면 MySQL은 SQL 표준을 구현하고 저장 프로 시저 및 트리거와 같은 추가 기능을 제공합니다.

Redis는 주로 데이터베이스, 캐시 및 메시지 중개인으로 사용되는 메모리 데이터 구조 스토리지 시스템입니다. 핵심 기능에는 단일 스레드 모델, I/O 멀티플렉싱, 지속 메커니즘, 복제 및 클러스터링 기능이 포함됩니다. Redis는 일반적으로 캐싱, 세션 저장 및 메시지 대기열을위한 실제 응용 프로그램에 사용됩니다. 올바른 데이터 구조를 선택하고 파이프 라인 및 트랜잭션을 사용하여 모니터링 및 튜닝을 통해 성능을 크게 향상시킬 수 있습니다.

MySQL 및 Phpmyadmin은 다음 단계를 통해 효과적으로 관리 할 수 있습니다. 1. 데이터베이스 작성 및 삭제 : Phpmyadmin을 클릭하여 완료하십시오. 2. 테이블 관리 : 테이블을 만들고 구조를 수정하고 인덱스를 추가 할 수 있습니다. 3. 데이터 작동 : 삽입, 업데이트, 데이터 삭제 및 SQL 쿼리 실행을 지원합니다. 4. 가져 오기 및 내보내기 데이터 : SQL, CSV, XML 및 기타 형식을 지원합니다. 5. 최적화 및 모니터링 : 최적화 가능한 명령을 사용하여 테이블을 최적화하고 쿼리 분석기 및 모니터링 도구를 사용하여 성능 문제를 해결하십시오.

프론트 엔드 개발에서 JSON의 기능과 정규 표현식을 안전하게 처리하면 JavaScript가 종종 필요합니다 ...
