如何与一位知名会员建立 1:n 关系
How to have a 1:n relationship with one prominent Member
我正在开发一个管理客户及其应用程序打包请求的程序。我想将信息存储在 MS SQL 数据库中,并根据客户使用不同的默认值,因为不同的客户有一组不同的相关值或使用值。
我的数据库有 2 个相关表:客户和应用程序。一个客户可以有多个应用程序(应用程序中的 1:n 外键)但是每个客户也只有一组默认值(客户中的 1:1 外键)
经过一些研究,我找不到任何人尝试过类似的东西,我对这两个参考文献有一种非常糟糕的感觉。在1:N关系的N方有没有更优雅的方法来实现一个优秀的成员?
有几种方法:
您的客户和默认设置是 1:1。
所有其他应用实体的客户是1:n
- 您可以将默认值直接放入您的客户 table(简单快速但不干净)
- 您可以定义两个具有相同结构的 table。一个具有不可为空的列来定义默认值并将它们绑定 1:1 ,第二个作为 1:n 关系(您需要一个 UNION 查询将它们放在一起)
- 您可以在您的应用程序中使用标记 table 来标记 "default" 行(您需要确保只有一个标记的记录)
- 您可能 - 这似乎是您当前的方法 - 将 FK-ID 设置到您的客户中 table 以存储默认行的 ID。
- 我的方法是:将排名列放入您的应用程序中 table。您可以将 customerID 和排名的组合设置为唯一...这使您能够将排名最低的定义为默认值,并且 - 类似于级联样式表 - 您可以从最高的开始并向后移动直到找到NULL 以外的一个值。
我正在开发一个管理客户及其应用程序打包请求的程序。我想将信息存储在 MS SQL 数据库中,并根据客户使用不同的默认值,因为不同的客户有一组不同的相关值或使用值。
我的数据库有 2 个相关表:客户和应用程序。一个客户可以有多个应用程序(应用程序中的 1:n 外键)但是每个客户也只有一组默认值(客户中的 1:1 外键)
经过一些研究,我找不到任何人尝试过类似的东西,我对这两个参考文献有一种非常糟糕的感觉。在1:N关系的N方有没有更优雅的方法来实现一个优秀的成员?
有几种方法:
您的客户和默认设置是 1:1。
所有其他应用实体的客户是1:n
- 您可以将默认值直接放入您的客户 table(简单快速但不干净)
- 您可以定义两个具有相同结构的 table。一个具有不可为空的列来定义默认值并将它们绑定 1:1 ,第二个作为 1:n 关系(您需要一个 UNION 查询将它们放在一起)
- 您可以在您的应用程序中使用标记 table 来标记 "default" 行(您需要确保只有一个标记的记录)
- 您可能 - 这似乎是您当前的方法 - 将 FK-ID 设置到您的客户中 table 以存储默认行的 ID。
- 我的方法是:将排名列放入您的应用程序中 table。您可以将 customerID 和排名的组合设置为唯一...这使您能够将排名最低的定义为默认值,并且 - 类似于级联样式表 - 您可以从最高的开始并向后移动直到找到NULL 以外的一个值。