2010-07-31 18 views
9

Tôi nên sử dụng loại dữ liệu nào cho cột SQL để lưu trữ phiên bản Sản phẩm, ví dụ:Loại dữ liệu SQL để lưu trữ phiên bản xây dựng

Version 
0.1 
0.1.1 
0.2 
1.1 
1.1.647 
2.0 
..... 

Trong truy vấn tôi có thể sắp xếp chúng dựa trên số phiên bản và tôi muốn truy vấn tối ưu để tìm số cao nhất.

Cảm ơn

Trả lời

11

Tôi sẽ xem xét lưu trữ từng phần của số trong trường TINYINT/SMALLINT riêng biệt.

8

Có lẽ có ba hoặc bốn trường số vào bảng phiên bản:

Major, Minor, Revision, Build 
3

lưu trữ trong các lĩnh vực số riêng biệt là một ý tưởng tốt. Lưu trữ dưới dạng một chuỗi trong một trường sẽ phá vỡ phân loại khi một trong các phần đạt đến 1000. Ví dụ: 1.2.999 sẽ xuất hiện trước (hoặc được hiển thị là mới hơn) 1.2.1000 khi nó xuất hiện sau đó.

1

Một giải pháp tốt sẽ được sử dụng một số nguyên xây dựng giá trị để lưu trữ như vậy:

MAJOR * 10000 + MINOR * 100 + Revision 

Giả sử mỗi người có thể dao động từ 0..99. Nếu bạn muốn đi 0..999 sử dụng

MAJOR * 1000000 + MINOR * 1000 + Revision 

này sẽ loại đúng cách, sẽ truy vấn một cách dễ dàng, nhỏ gọn (1 int cột), có thể dễ dàng bị phân hủy và thậm chí có thể được phân hủy bằng mắt thường.

Các vấn đề liên quan