Sql 如何实现数据库的按用户视图?
我有一个包含小部件及其各种属性的postgresql表。每个小部件都属于一组用户,但组中的每个用户都可能希望从他们的视图中归档/隐藏任何给定的小部件。这些小部件可能有数百个,有些用户只关心其中的一些子集,但这成为每个用户的首选项Sql 如何实现数据库的按用户视图?,sql,postgresql,database-design,Sql,Postgresql,Database Design,我有一个包含小部件及其各种属性的postgresql表。每个小部件都属于一组用户,但组中的每个用户都可能希望从他们的视图中归档/隐藏任何给定的小部件。这些小部件可能有数百个,有些用户只关心其中的一些子集,但这成为每个用户的首选项 我不知道如何有效地实现这一点。我可以在widget表中包含一个“非活动”列,其中包含隐藏了每一行的用户列表,但这似乎效率极低。翻转它以便将隐藏项存储在用户配置文件中似乎并没有什么好处,因为随着时间的推移,该列表可能会变得任意大。对于这类问题有什么最佳实践吗 您正在寻找连
我不知道如何有效地实现这一点。我可以在widget表中包含一个“非活动”列,其中包含隐藏了每一行的用户列表,但这似乎效率极低。翻转它以便将隐藏项存储在用户配置文件中似乎并没有什么好处,因为随着时间的推移,该列表可能会变得任意大。对于这类问题有什么最佳实践吗 您正在寻找连接表。以下是一个概要:
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
);