我有这个模拟数据库:
用户:
公司:
加盟店:
存储
这些都是主键和外键。
我想知道如果将诸如把user_id放在特许经营权表中这样做是不好的做法。
这样我可以在没有所有关系的情况下进行报告,并且万一“丢失”我可以找到它的去向。它们不是数据库中定义的外键,但它们看起来像外键。或者我应该把它们变成外键吗?
感谢您的投入。
编辑:我还认为像我一样思考的非规范化可能有助于加快速度,而不必使用所有连接。
答案 0 :(得分:6)
您所谈论的是计划数据非规范化。您最好为报告访问表创建视图。这样您就不必更改表及其完整性(或存储冗余),但您仍然可以在报告中使用关联。
答案 1 :(得分:3)
我明白你在做什么。对我来说,你现在拥有的一切都很好;您不需要为特许经营添加额外的字段'user_id'。由于用户与公司有关系,公司与特许经营有关系;用户确实与特许经营权有联系。
您可能希望创建一个视图来显示所有内容,而不是向表中添加额外的字段。