2017-04-17 26 views
2

我有一個包含小部件及其各種屬性的postgresql表。每個小部件都屬於一組用戶,但該小組中的每個用戶可能想要從其視圖中存檔/隱藏任何給定的小部件。可以有數百個這樣的小部件,並且一些用戶只關心他們的一部分,但是這成爲每個用戶的偏好。如何實現數據庫的每用戶視圖?

我不知道如何有效地實現這一點。我可以在小部件表中包含一個「非活動」列,其中包含隱藏每行的用戶列表,但這似乎非常低效。翻轉它,所以我將隱藏的項目存儲在用戶配置文件中似乎沒有什麼更好的,因爲隨着時間的推移,該列表可能會隨意增大。這種問題有什麼最佳做法嗎?

回答

0

您正在尋找接口表。這裏是概述:

create table widgets (
    widgetId serial primary key, 
    . . . 
); 

create table users (
    userId serial primary key, 
    . . . 
); 

create table userWidgets (
    userWidgetId serial primary key, 
    userId int not null references users(userId), 
    widgetId int not null references widgets(widgetId), 
    isVisible boolean 
); 
相關問題