Table 结构和验证
Table structure and validation
我有一名 table 员工,希望得到有关定义主要 key/table 的建议。最初我想保留 EMP ID
字段作为主键,但后来我还想跟踪所有更改 - TL Name
为员工。此 table 应仅允许一个唯一的活动 EMP ID
,但可以允许多个非活动 EMP ID
。请推荐。
下面是 table.
的示例结构
+----+--------+----------+---------+-----------+
| ID | EMP ID | EMP Name | TL Name | Is Active |
+----+--------+----------+---------+-----------+
| 1 | Z001 | Raj | Vik | No |
+----+--------+----------+---------+-----------+
| 2 | Z002 | Ajay | Peter | No |
+----+--------+----------+---------+-----------+
| 3 | Z001 | Raj | Ashish | No |
+----+--------+----------+---------+-----------+
| 4 | Z003 | Soni | Suresh | Yes |
+----+--------+----------+---------+-----------+
| 5 | Z001 | Raj | Vinod | Yes |
+----+--------+----------+---------+-----------+
i) 如果您在 table 中使用 IsActive 规则,则 EmpID 不能是主要的 key.you hv,无法通过代码实现。
ii) 如果您删除 IsAcTive 规则,那么我认为 EmpID 是通过代码生成的,然后在同一代码中您可以放置一个 filter.so 将其作为主键毫无意义。
最好做到 CI。
iii) 将ID设为PK。
iv) 他们中的许多人都遵循相同的设计 pattern.If,即 table 将增长到数百万条记录,并且在搜索和加入中非常频繁地使用,那么这绝对是糟糕的设计。
如果是这种情况,则保持单独更改 table 并删除那些审计列。
v) 即使你的 table 很小,但在所有查询中付出写 isAtive='YES' 的代价也是不好的 design.you hv。
vi) 虽然保持独立 table 需要更多的代码和维护,但这是值得的。
我有一名 table 员工,希望得到有关定义主要 key/table 的建议。最初我想保留 EMP ID
字段作为主键,但后来我还想跟踪所有更改 - TL Name
为员工。此 table 应仅允许一个唯一的活动 EMP ID
,但可以允许多个非活动 EMP ID
。请推荐。
下面是 table.
的示例结构+----+--------+----------+---------+-----------+
| ID | EMP ID | EMP Name | TL Name | Is Active |
+----+--------+----------+---------+-----------+
| 1 | Z001 | Raj | Vik | No |
+----+--------+----------+---------+-----------+
| 2 | Z002 | Ajay | Peter | No |
+----+--------+----------+---------+-----------+
| 3 | Z001 | Raj | Ashish | No |
+----+--------+----------+---------+-----------+
| 4 | Z003 | Soni | Suresh | Yes |
+----+--------+----------+---------+-----------+
| 5 | Z001 | Raj | Vinod | Yes |
+----+--------+----------+---------+-----------+
i) 如果您在 table 中使用 IsActive 规则,则 EmpID 不能是主要的 key.you hv,无法通过代码实现。
ii) 如果您删除 IsAcTive 规则,那么我认为 EmpID 是通过代码生成的,然后在同一代码中您可以放置一个 filter.so 将其作为主键毫无意义。
最好做到 CI。 iii) 将ID设为PK。
iv) 他们中的许多人都遵循相同的设计 pattern.If,即 table 将增长到数百万条记录,并且在搜索和加入中非常频繁地使用,那么这绝对是糟糕的设计。
如果是这种情况,则保持单独更改 table 并删除那些审计列。
v) 即使你的 table 很小,但在所有查询中付出写 isAtive='YES' 的代价也是不好的 design.you hv。
vi) 虽然保持独立 table 需要更多的代码和维护,但这是值得的。