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
简短回答:永远,永远,永远.
更长的答案:仅在以下时间:
您已经确定JOIN的性能是不可接受的(这很少是真的).
你真的已经筋疲力尽了所有不那么危险的选择.
您愿意承担保持冗余,非规范化信息同步所需的额外工作
您愿意接受这样的事实:如果您无法保持同步状态,那么您的数据库在技术上可能会返回不正确的结果.