在我的 SQL Server 数据库结构中,我有 3 种类型的产品,它们需要有关订单的不同信息。因此,我创建了一张Customers表和三个不同的订单表:OrdersForProductAs、OrdersForProductBs、OrdersForProductCs。所有订单表在表上都有一对多的关系Customers。
我还有另一张桌子,Payments里面有付款细节。但我在这里对如何构建它有疑问。
由于我有多种产品类型,并且客户可能同时订购多种产品,因此我需要将这三个订单表关联到Payments表。
另一个问题是客户可能只订购一种产品。因此,表上的 FK 列Payments需要为nullable.
我的问题是nullable,从长远来看,这些FK 专栏是否会让我头疼?一般来说,在表上拥有可为空的 FK 列是否被认为是一种不好的做法?
sql-server-2008 database-design sql-server sql-server-2008-r2
寻找有关表/索引设计决策的一些建议,我必须对一些必须从现有的基于 4GL 的数据库移植到 SQL 服务器的表做出决定。
我有一个经常插入(从未更新)的产品历史记录表,并且该表具有这种结构
目前,主键由 ProductNo 和 CreatedDateTime 的组合组成,试图定义唯一的索引键。每个产品号我们可以有很多记录。
我将创建一些 1 对 1 相关表,并且不想将 productno 和 createddatetime 字段都携带到相关表中以充当外键。我也认为这种组合有点脆弱,以保证唯一性。
因此,我计划向表 'ProductHistoryPK' 添加一个新字段,作为递增的 Int 或 SequentialGuid 作为相关表的主键和外键。
在索引方面我正在考虑创建
关于这个的任何想法或指示?
谢谢...