数据库设计静态数据和进度数据

时间:2013-07-17 15:04:35

标签: database

如果我有一些数据应该是静态的来源

表人A(静态) 幸福0

我需要一个用于存储用户播放进度的表

表User_1_Person_A 幸福5

如何设计数据库? 我唯一的想法是

表人物_A 幸福5 User_id 1

但是两个表列将是相同的。这是一个糟糕的设计吗?感谢

1 个答案:

答案 0 :(得分:1)

我会猜测你在问什么。

进度

如果你想跟踪进度,你需要一张带有时间戳的表。

以下是我如何定义表格。

Person
------
Person ID
Person User ID
Person Name
...

Person ID是Person表的主(聚类)键。它是一个自动递增的整数或长整数。

Skill
-----
Skill ID
Skill Name

技能ID是技能表的主要(群集)键。它是一个自动递增的整数或长整数。

Progress
--------
Progress ID
Person ID
Skill ID
Progress Timestamp
Progress Level

进度ID是Progress表的主要(群集)键。它是一个自动递增的整数或长整数。

您在(人员ID,技能ID,进度时间戳DESCENDING)上创建另一个唯一索引。这允许您选择任何技能的最新(最高)技能等级。

初始

您还需要一个表来设置任何技能的初始进度级别。

Initial
-------
Initial ID
Skill ID
Initial Level

初始ID是Initial表的主(聚类)键。它是一个自动递增的整数或长整数。

摘要

将数据元素组织到数据库表中的过程称为normalization