表中的外键快捷键

Max*_*ich 5 sql t-sql foreign-keys foreign-key-relationship relational-database

想象一下这样的架构.

NOTE TABLE:            NoteID, Note, DetailedTaskID, .....

DETAILED TASK TABLE:   DetailedTaskID, WorkOrderID, .....

WORKORDER TABLE:       WorkOrderID, ProjectID, .....

PROJECT TABLE:         ProjectID, .....
Run Code Online (Sandbox Code Playgroud)

现在使用这个模式,我想要检索与特定项目相关联的所有注释,最终会有大量的连接.

IE: Note JOIN DetailedTask JOIN WorkOrder JOIN Project
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,当(如果有的话)为表添加"快捷方式"列时(在本例中为ProjectID)是否合适?

所以基本上将注释表更改为:NoteID,Note,DetailedTaskID,ProjectID

Lar*_*tig 7

简短回答:永远,永远,永远.

更长的答案:仅在以下时间:

  1. 您已经确定JOIN的性能是不可接受的(这很少是真的).

  2. 你真的已经筋疲力尽了所有不那么危险的选择.

  3. 您愿意承担保持冗余,非规范化信息同步所需的额外工作

  4. 您愿意接受这样的事实:如果您无法保持同步状态,那么您的数据库在技术上可能会返回不正确的结果.