Popular

Java Backend Primary Key



Trong Hibernate (và trong các hệ thống quản lý cơ sở dữ liệu nói chung), chúng ta có thể cấu hình các khóa chính theo hai cách: sử dụng một khóa chính đơn (single primary key) hoặc sử dụng nhiều khóa chính (composite key hoặc multiple primary keys). Chúng ta sẽ đi qua từng cách trong bài này


1. Single primary key

Khóa chính đơn là một thuộc tính duy nhất trong một bảng được sử dụng để định danh duy nhất mỗi bản ghi. Đây là cách phổ biến và đơn giản nhất để định nghĩa khóa chính.

Dưới đây là cấu trúc bảng dữ liệu cho Single primary key

DROP DATABASE IF EXISTS ThachPhamDevDb;
-- Create database
CREATE DATABASE IF NOT EXISTS ThachPhamDevDb;
USE ThachPhamDevDb;

-- Create table Group
DROP TABLE IF EXISTS `Order`;
CREATE TABLE IF NOT EXISTS `Order` (
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title NVARCHAR(50) NOT NULL UNIQUE KEY
);

-- INSERT DATA
USE ThachPhamDevDb;

INSERT INTO `Order` (title)

VALUE ('Order 1'),
('Order 2'),
('Order 3');
USE ThachPhamDevDb;
Select * from `Order`;


1. Multiple primary key

Một khóa chính bao gồm nhiều cột (thuộc tính) được gọi là khóa chính phức hợp (composite key). Trong Hibernate, có hai cách chính để cấu hình composite keys:

- Sử dụng @IdClass Annotation
- Sử dụng @EmbeddedId Annotation

Cấu trúc bảng dữ liệu cho Multiple primary key

DROP DATABASE IF EXISTS ThachPhamDevDb;
-- Create database
CREATE DATABASE IF NOT EXISTS ThachPhamDevDb;
USE ThachPhamDevDb;

-- Create table Group
DROP TABLE IF EXISTS `Order`;
CREATE TABLE IF NOT EXISTS `Order` (
order_id SMALLINT UNSIGNED NOT NULL,
product_id SMALLINT UNSIGNED NOT NULL,
title NVARCHAR(50) NOT NULL UNIQUE KEY,
PRIMARY KEY (order_id, product_id)
);

-- INSERT DATA
USE ThachPhamDevDb;

INSERT INTO `Order` (order_id, product_id, title)

VALUE (1, 1, 'Order 1'),
(1, 2, 'Order 2'),
(2, 3, 'Order 3');

USE ThachPhamDevDb;
Select * from `Order`;

Để hiểu thêm chi tiết mời các bạn xem video bên dưới:





Comments