假設我有一系列在數據庫中編碼的文章,這些文章顯示在網站的前端。用戶定義的排序 - 額外的列或表?
如果添加了對自定義排序的支持,那麼應該如何/應該在數據庫中表示?
P.S:可能存在文章顯示在多個列表中的情況。
假設我有一系列在數據庫中編碼的文章,這些文章顯示在網站的前端。用戶定義的排序 - 額外的列或表?
如果添加了對自定義排序的支持,那麼應該如何/應該在數據庫中表示?
P.S:可能存在文章顯示在多個列表中的情況。
在數據庫中存儲用戶定義排序的唯一方法是以表格中的數據行。要做到這一點,你需要
前兩個很容易。有幾種不同的方式來存儲訂單。設計目標通常是減少重寫訂單的需要。
create table user_defined_order (
user_id integer not null references users (user_id),
article_id integer not null references articles (article_id),
sort_order <sort_data_type> not null,
primary key (user_id, article_id),
unique (user_id, sort_order)
);
最後一個約束unique (user_id, sort_order)
取決於應用程序。
sort_data_type選項
不同的數據類型給你插入和改變的順序不同的選項。最常用的是無間隙
如果我理解正確,那麼每個用戶都可以按不同的順序顯示訂單。假設每個用戶都有一個ID,那麼您需要一個由三個字段組成的表,用戶ID /文章ID /顯示順序,其中用戶ID和文章ID爲表提供複合主鍵。
排序選項應基於您的表的結構,並且可能只會添加混亂作爲元數據,除非您預見它經常更改。我個人會保留僅在應用程序中定義的訂單的定義。 –
「我個人會保留僅在應用程序中定義的訂單的定義。」例如在一個XML文件中? –