Oracle-存储用户设置

Oracle-存储用户设置,oracle,settings,Oracle,Settings,用户已注册多个团队(少于30个) UserTeam表-UserId,TeamId 我将其存储为varchar,比如“123:0;124:1;155:1”,其中123、124和155是团队ID,有更好的方法吗?或者可能只是“124:155”,这意味着只存储有权限的TeamID UserScore-用户ID、活动ID、ScoreId、团队ID 您对Oracle数据库有什么建议 编辑:团队的总数可以是几万个,但分配给用户的团队总数将少于30个 使用规范化规则来设计数据模型。从性能的角度来看,反规范化是

用户已注册多个团队(少于30个)

UserTeam表-UserId,TeamId

我将其存储为varchar,比如“123:0;124:1;155:1”,其中123、124和155是团队ID,有更好的方法吗?或者可能只是“124:155”,这意味着只存储有权限的TeamID

UserScore-用户ID、活动ID、ScoreId、团队ID

您对Oracle数据库有什么建议


编辑:团队的总数可以是几万个,但分配给用户的团队总数将少于30个

使用规范化规则来设计数据模型。从性能的角度来看,反规范化是必要的

**User**
UserId
UserData

**Team**
TeamId
TeamData


**UserTeam**
UserId
TeamId

foreign key constraints to user and team table

**UseScore** 
UserId
TeamId
ActivityId
Score

foreign key constraints to user, team and activity table

我会使用多对多关系表。@GuiGi你能解释一下吗?这是Robert Merkwürdigilebe回答的:将关系放在一个单独的表中,对实体表使用外键约束。因此ActivityId和分数将重复-意味着每个分数可能有30行?这完全取决于您需要存储的信息、功能规范。您是否需要为用户的每个活动保存分数?我认为您的功能规范并不完全清楚。但将数据作为csv字符串存储在varchar2字段中不是IMHO的方法。这些“活动”或“任务”肯定需要评分-它们不一定每天都发生。。。平均每周一次。