Tôi có một bảng gọi là events
nơi tất cả thông tin mới đều được gửi đi. Bảng này hoạt động như một tham chiếu cho tất cả truy vấn cho (các) nguồn cấp dữ liệu tin tức để các mục sự kiện được chọn từ đó và thông tin tương ứng với sự kiện đó được truy xuất từ các bảng chính xác.Làm thế nào để có ID duy nhất trên hai hoặc nhiều bảng trong MySQL?
Bây giờ, đây là vấn đề của tôi. Tôi có E_ID
trong bảng sự kiện tương ứng với ID của một sự kiện trong một bảng khác, có thể là T_ID
cho tracks
, S_ID
cho status
và cứ thế ... Những ID này có thể giống nhau trong thời gian này sử dụng một giá trị auto_increment khác nhau cho mỗi bảng để status
bắt đầu trên 500 tracks
trên 0 vv Rõ ràng, tôi không muốn làm điều đó vì tôi không có ý tưởng nào trong đó bảng sẽ có nhiều dữ liệu nhất trong đó. Tôi giả định status
sẽ nhanh chóng vượt quá tracks
.
Thông tin được đưa vào bảng event
có trình kích hoạt. Đây là một ví dụ của một;
BEGIN
INSERT INTO events (action, E_ID, ID)
VALUES ('has some news.', NEW.S_ID, NEW.ID);
END
Đó là bảng trạng thái của anh ấy.
Có bổ sung cho trình kích hoạt mà tôi có thể thực hiện để đảm bảo NEW.S_ID
! = An E_ID
hiện tại trong events
và nếu thay đổi S_ID
tương ứng.
Ngoài ra, có một số loại khóa mà tôi có thể sử dụng để tham chiếu các sự kiện khi tự động tăng S_ID
sao cho số S_ID
không được tăng lên thành giá trị E_ID
.
Đó là những suy nghĩ của tôi, tôi nghĩ giải pháp sau sẽ tốt hơn nhưng tôi nghi ngờ điều đó là có thể hoặc nó sẽ yêu cầu một bảng tham chiếu khác và sẽ quá phức tạp.
Tôi sẽ đề nghị bạn thực sự cần những thứ này để phân bổ id s một trường tăng tự động trên một bảng và sử dụng giá trị từ đó làm id mới khi điền vào một trường trên các bảng khác nhau của bạn. Tuy nhiên tôi muốn có các lĩnh vực id trên bảng khác nhau hoàn toàn độc lập. – Kickstart