ak3*_*t0n 7 database relationship
我目前有一个包含两个名为Articles和Tags的表的数据库.为了使文章在多个类别中,我有多对多的关系.在性能方面有这样的设计是错误的吗?或者我应该删除这两个表之间的关系,并添加第三个表作为桥(articlesTags)?
您将看到概念数据库设计(N:N关系)与物理实现之间的区别.无论你如何建模你的N:N关系,你都需要上面提到的连接表来使它工作.
将现实世界关系建模为尽可能接近现实世界并没有任何问题.清晰是王道.
当谈到任何系统中的任何性能问题时,答案通常归结为"它取决于".
如果你的性能问题与WRITES有关,那么一个高度标准化的结构是最好的,你会想要那个Junction表.您最终会编写更少的数据并且可以大大加快速度(尽管您可以通过在创建插入之前进行查找来消除这一优势).从各个规范化表中读取也可以非常快.
如果您的问题与分析READS有关,那么DENORMALISED结构是最好的.如果表格很大并且索引分散,则联接可能会非常高性能.你会牺牲很多空间来获得大量时间.
一般而言,您需要查看具体情况,并在决定解决方案之前权衡每种方法的优缺点.就个人而言,我总是发现最好在初始阶段专注于Clarity,如果后来发现问题则重构性能.