我们的应用程序中需要存储引用以供以后访问.
示例:用户可以一次提交发票,并且应该随时间存储此发票包含的所有参考(客户地址,计算的金额,产品描述)和计算.
我们需要以某种方式保留引用,但如果产品名称改变了怎么办?因此,某种程度上我们需要复制所有内容,以便以后记录,不会受到未来变化的影响.即使删除了产品,也需要在存储发票时进行审核.
这里有关数据库设计的最佳实践是什么?甚至最灵活的方法是什么,例如当用户想要稍后编辑发票并从数据库恢复时?
谢谢!
我对数据库设计相当新,对于多对多的关系,创建复合键的差异和含义是什么,以及对于例如
Country 表
CountryID
CountryName
Run Code Online (Sandbox Code Playgroud)
Language 表
LanguageID
LangugageName
Run Code Online (Sandbox Code Playgroud)
多对多表 - 使用复合:
CountryID Pkey
LanguageID Pkey
Run Code Online (Sandbox Code Playgroud)
要么
使用唯一ID:
AutoID Pkey
CountryID
LanguageID
Run Code Online (Sandbox Code Playgroud) 例如,我们有表A和表B,它们具有多对多关系.交叉表,表C存储A.id和B.id以及表示两者之间关系的值.或者作为一个具体的例子,想象一下stackexchange,它有一个用户帐户,一个论坛和一个业力评分.或者,学生,课程和成绩.如果表A和B非常大,表C可以并且可能会非常快地变大(事实上,假设它确实如此).我们如何处理这样的问题?有没有更好的方法来设计表格来避免这种情况?