我对数据库设计很陌生,对最佳实践有一些疑问,我真的很想学习。我正在设计一个数据库模式,我对需求有一个很好的了解,现在是把它变成黑白的问题。
在这个伪数据库布局中,我有一张客户表、订单表和产品表。
TBL_PRODUCTS:
ID
描述
详细信息
TBL_CUSTOMER:
ID
名称
地址
TBL_ORDER:
ID
TBL_CUSTOMER.ID
prod1
prod2
prod3
等
每个“订单”只有一个客户,但可以有任意数量的“产品”。
问题是,在我的情况下,给定订单的产品可以是任何数量(单个订单数百个),最重要的是,订单的每个产品需要的不仅仅是“数量”,而是可以具有跨越页面的值特定订单的特定产品的文本。我的问题是,我怎样才能存储这些信息?
假设我不能将可变长度数组存储为单个字段值,另一种选择是有一个以某种方式分隔并由应用程序中的代码拆分的字符串。一个订单可能有 100 个产品,每个产品只有一个小的 int,或 5000 个字符或自由文本(或介于两者之间的任何内容),仅对该订单唯一。
最重要的是,每个订单都必须有自己的审计跟踪,因为在它的整个生命周期中可能会发生很多事情。审计跟踪将包含通常的信息——用户、时间/日期、操作,并且可以是任意长度。我是否会将特定订单的审计跟踪存储在创建订单时创建的自己的表中(因为它们可能会变得很长)?
有什么地方可以让我了解更多关于数据库设计技术的信息吗?