Tôi có một cơ sở dữ liệu không được sản xuất, vì vậy bảng chính là CustodyDetails, bảng này có một ID int IDENTITY(1,1) PRIMARY KEY
cột và tôi đang tìm cách thêm một mã định danh duy nhất khác mà nó không được tham chiếu trong bất kỳ bảng nào khác, tôi sẽ nghĩ bằng cách lấy nó trong tài khoản nội dung của cột sẽ không chính xác là một khóa nhận dạng.
Cột nhận dạng mới này có một vài chi tiết cụ thể và đây là vấn đề của tôi bắt đầu. Định dạng như sau: XX/YY
trong đó XX là giá trị gia tăng tự động đặt lại / khởi động lại mỗi năm mới và YY là 2 chữ số cuối của năm hiện tại SELECT RIGHT(YEAR(GETDATE()), 2)
.
Vì vậy, ví dụ: giả sử một bản ghi được thêm vào một ngày bắt đầu từ ngày 28/12/2015 kết thúc ngày 03/01/2016 , cột sẽ có dạng:
ID ID2 DATE_ADDED
1 1/15 2015-12-28
2 2/15 2015-12-29
3 3/15 2015-12-30
4 4/15 2015-12-31
5 1/16 2016-01-01
6 2/16 2016-01-02
7 3/16 2016-01-03
Tôi đã nghĩ đến việc sử dụng frontend để phân tích ID tổng hợp (ví dụ ID2) lấy 2 chữ số cuối và so sánh với 2 chữ số cuối của năm hiện tại và sau đó quyết định có bắt đầu tương quan mới hay không. Tất nhiên sẽ là tuyệt vời khi có thể làm tất cả về phía cơ sở dữ liệu.
EDIT 1: btw, tôi cũng đã thấy mọi người sử dụng các bảng riêng biệt chỉ để lưu các khóa nhận dạng song song, do đó, một bảng Khóa nhận dạng trở thành Khóa phụ của bảng thứ hai, điều này nghe có vẻ hơi khó hiểu nhưng có lẽ đây là trường hợp triển khai như vậy?
EDIT 2: Đây thêm ID là một tài liệu tham khảo tài liệu di sản mà nhãn mỗi tập tin / hồ sơ. Tôi đoán người ta có thể nghĩ về nó như một bí danh đặc biệt cho ID chính.
Số lượng hồ sơ mà cơ sở dữ liệu này xử lý hàng năm đã không còn trong số 100 trong 20 năm qua và rất khó có thể thực hiện được, tất nhiên là nếu nó vượt quá 99 thì trường sẽ có thể tiếp tục với chữ số phụ và giao diện / thủ tục sẽ có thể vượt quá 99, vì vậy nó không giống như nó thay đổi mọi thứ.
Tất nhiên, một số chi tiết tôi đã không đề cập ngay từ đầu vì chúng sẽ chỉ thu hẹp khả năng giải pháp để đáp ứng nhu cầu cụ thể của tôi, đã cố gắng để phạm vi vấn đề rộng hơn.
ID
= 5, 6 và 7, DATE_ADDED nên 2016-01-01
và v.v.