Nó chỉ là một cách khác nhau để thể hiện dữ liệu. Còn được gọi là rộng (trục) và dài (gấp). Như một ví dụ và để giữ cho nó đơn giản, hãy tưởng tượng rằng chúng tôi có một kỷ lục với 3 thuộc tính: id
, name
, description
trong phiên bản rộng (xoay) mỗi tài sản sẽ là cột riêng của mình như sau:
CREATE TABLE `example_table` (
id int not null,
name archer(50) not null,
description archer(100) null
)
Trong định dạng dài (gấp), bạn sẽ có hai cột như vậy:
CREATE TABLE `example_table` (
property varchar(50) not null,
value varchar(100) not null
)
Việc sau cung cấp cho bạn tính linh hoạt cao hơn nếu các cột không được biết trước hoặc có khả năng thay đổi thường xuyên. Tuy nhiên, việc triển khai thường phức tạp hơn vì bạn phải thiết kế một cách để biết loại giá trị là gì, và sau đó bạn có chi phí tuần tự hóa / giải tuần tự hóa cho loại lưu trữ (trong ví dụ này là varchar (100)).
Định dạng rộng sẽ tốt hơn khi các thuộc tính không thay đổi rất thường xuyên và được biết trước. Điều này sẽ cung cấp hiệu suất tốt hơn nhưng sẽ kém linh hoạt hơn nếu cần thay đổi.
Nói chung, nếu có thể, hãy chọn định dạng rộng khi bạn biết cấu trúc dữ liệu bạn đang lưu trữ và chọn dài nếu bạn cần linh hoạt tối đa và sẵn sàng chấp nhận độ phức tạp được thêm vào.