Cách tiếp cận tốt nhất để cập nhật cột không được lập chỉ mục không được lập chỉ mục (không phải là khóa chính có liên quan) trong suốt các bảng chứa nó trùng lặp?Cách xử lý thay đổi dữ liệu đã chuẩn hóa
tức là người dùng đăng nội dung nào đó và bài đăng đó được nhân bản trong nhiều bảng để truy xuất nhanh. Nhưng khi bài đăng đó thay đổi (với bản chỉnh sửa), nó cần được cập nhật trong toàn bộ cơ sở dữ liệu, trong tất cả các bảng có chứa bài đăng đó (trong các bảng có các khóa chính khác nhau và không xác định).
Giải pháp Tôi đang nghĩ đến việc:
- Có một bảng ánh xạ để theo dõi các từ khóa chính trong tất cả các bảng, nhưng có vẻ như để dẫn đến bàn nổ (bài không phải là tài sản duy nhất mà có thể thay đổi).
- Sử dụng Solr để thực hiện ánh xạ, nhưng tôi sợ rằng tôi sẽ sử dụng nó cho mục đích sai.
Mọi giác ngộ sẽ được đánh giá cao.
EDIT (lược đồ hư cấu).
Điều gì xảy ra nếu bài đăng thay đổi? hoặc ngay cả tên người dùng display_name của người dùng?
CREATE TABLE users (
id uuid,
display_name text,
PRIMARY KEY ((id))
);
CREATE TABLE posts (
id uuid,
post text,
poster_id uuid,
poster_display_name text
tags set<text>,
statistics map<int, bigint>,
PRIMARY KEY ((id))
);
CREATE TABLE posts_by_user (
user_id uuid,
created timeuuid,
post text,
post_id uuid,
tags set<text>,
statistics map<int, bigint>,
PRIMARY KEY ((id), created)
);
Nếu bạn có thể thêm giản đồ bảng sẽ hữu ích. –
Đã thêm một sơ đồ giả tưởng .. – Droritos
Chúng ta có nên thay đổi tiêu đề thành 'dữ liệu không chuẩn hóa' thay vì 'dữ liệu trùng lặp' không? –