0

我正在为需要很大灵活性的不同程序开发一个评估系统。每个程序都有不同的东西要跟踪,所以我需要存储他们想要跟踪的数据点,以及在特定数据点上被评估的人的相应数据。我猜有几张桌子是合适的。这是一个总体大纲:

Table: accounts
- unique ID assigned to each account. We'll call this 'aid'

Table: users
- each user with unique ID.

Table: evaluation
- each program will enter in the metrics they want to track into this table (i.e attendance)
- column 'aid' will correspond to 'aid' in account table

Table: evaluation_data
- data (i.e attendance) entered into this database
- column 'aid' will correspond to 'aid' in account table
- column 'uid' will correspond to 'uid' in user table

评估数据的输入表单将从评估表中的内容生成。

这是我能想到的唯一合乎逻辑的方式。随着时间的推移,其中一些表将变得非常大。这是做到这一点的最佳方式吗?

4

1 回答 1

0

我对帐户,用户和程序如何相互关联以及帐户和程序是否是同一事物以及您可以互换使用这些术语感到有些困惑。我将使用更容易理解的不同术语。

假设您有一个网站,允许自由职业者跟踪不同的项目,他们可以创建自己的数据进行跟踪。(希望你看到相似之处)

表...

自由职业者

id    title     etc

项目

id    freelancer_id    title    description    etc

数据选项

id    freelancer_id    title

您甚至可以添加其他列,如 data_type,并提供 URL、电子邮件、文本、日期等选项,可用于验证或帮助格式化输入表单。

示例数据:

1    5    Status
2    5    Budget
3    5    Customer
4    99   Job Type
5    99   Deadline
6    102  Price
7    102  Status
8    102  Due By

这显示了 3 个不同的自由职业者跟踪数据,id 为 5、99 和 102 的自由职业者。截止日期和截止日期基本相同,但自由职业者可以随意调用它们。

数据值

id    project_id    option_id    option_value

列 freelancer_id,因为您可以加入并从 project_id 或 option_id 获取 freelancer_id

示例数据:

1000     1      2     $250
1001     1      1     Completed
1002     1      3     Martha Hayes

这仅显示 id 为 5 的自由职业者输入的信息,因为 option_id 的 1-3 属于该用户。

于 2013-08-08T20:57:38.600 回答