Oracle APEX - 数据建模和主键
Oracle APEX - Data Modeling & Primary Keys
我正在创建一个相当大的 APEX 应用程序,它允许经理进入并记录公司员工的统计数据。目前我们在 oracle 中有一个数据库,其中包含来自 AD 的数据,其中包含所有关联信息。姓名、经理、员工编号等
现在我负责创建和建模一个 table 来存放每个员工的所有统计数据。我创建的 table 中有超过 90 列。有些包含数据,例如:
- 已处理文件
- 已接来电
- 已处理的 Doc 1 数量
- 已处理的 Doc 2 数量
并且该列表包含 90 多个属性。所以这是我的问题:
在我的应用程序中创建具有如此多不同列的 table 时,我将如何选择合适的主键?我应该 link 使用唯一的员工标识(每个员工都有一个关联编号)将它 link 发送给我们的员工 table 吗?
其次,我如何创建这些 table(可能还有表格)以允许我将我为个人输入的统计信息与实际个人相关联?
因为我是 APEX 和 DBA 设计的新手,所以我从亚马逊订购了两本关于数据建模的书。不是新鲜的鸡,但足够新,需要一些指导。我 运行 遇到的另一个问题是每个表单只能有 60 个字段。所以我考虑过为我 90 多岁的不同功能创建 tables。
谢谢
4.2 每页允许 200 个项目。
我想到了几个问题:
- 您确定员工 ID 不可回收吗?如果这些 id 是唯一的并且没有被回收..你发现自己是一个很好的主键。
- 当您决定添加新指标时,您打算做什么?似乎您可能必须向相当大且可能未规范化的 table.
添加一个新列
我建议为您的指标使用垂直 table。您可以使用 oracle 的数据透视功能使您的数据看起来更像水平 table。
如果你走这条路,你会在一列中存储你的员工 ID,在另一列中存储你的指标键,以及值...
我建议您创建一个指标 table,其中包含主键、指标标签、活动指标、创建时间戳、创建用户 ID、修改时间戳、修改用户 ID。
此指标 table 将允许您添加新指标、更改指标名称、停用指标,以及确定谁在何时更改了什么内容。
在我看来,这是一种更加灵活的方法。您可能还想考虑审计日志。
我正在创建一个相当大的 APEX 应用程序,它允许经理进入并记录公司员工的统计数据。目前我们在 oracle 中有一个数据库,其中包含来自 AD 的数据,其中包含所有关联信息。姓名、经理、员工编号等
现在我负责创建和建模一个 table 来存放每个员工的所有统计数据。我创建的 table 中有超过 90 列。有些包含数据,例如:
- 已处理文件
- 已接来电
- 已处理的 Doc 1 数量
- 已处理的 Doc 2 数量
并且该列表包含 90 多个属性。所以这是我的问题:
在我的应用程序中创建具有如此多不同列的 table 时,我将如何选择合适的主键?我应该 link 使用唯一的员工标识(每个员工都有一个关联编号)将它 link 发送给我们的员工 table 吗?
其次,我如何创建这些 table(可能还有表格)以允许我将我为个人输入的统计信息与实际个人相关联?
因为我是 APEX 和 DBA 设计的新手,所以我从亚马逊订购了两本关于数据建模的书。不是新鲜的鸡,但足够新,需要一些指导。我 运行 遇到的另一个问题是每个表单只能有 60 个字段。所以我考虑过为我 90 多岁的不同功能创建 tables。
谢谢
4.2 每页允许 200 个项目。
我想到了几个问题:
- 您确定员工 ID 不可回收吗?如果这些 id 是唯一的并且没有被回收..你发现自己是一个很好的主键。
- 当您决定添加新指标时,您打算做什么?似乎您可能必须向相当大且可能未规范化的 table. 添加一个新列
我建议为您的指标使用垂直 table。您可以使用 oracle 的数据透视功能使您的数据看起来更像水平 table。
如果你走这条路,你会在一列中存储你的员工 ID,在另一列中存储你的指标键,以及值...
我建议您创建一个指标 table,其中包含主键、指标标签、活动指标、创建时间戳、创建用户 ID、修改时间戳、修改用户 ID。
此指标 table 将允许您添加新指标、更改指标名称、停用指标,以及确定谁在何时更改了什么内容。
在我看来,这是一种更加灵活的方法。您可能还想考虑审计日志。