如何找到一种通用方法,将数据库中的所有引用数据存储在SQL中?

如何找到一种通用方法,将数据库中的所有引用数据存储在SQL中?,sql,database-design,Sql,Database Design,在我的数据库中,客户可以拥有多个帐户,并且一个帐户可以由多个证券进行保护。客户可以与银行中的其他客户关联。例如,房地产开发商可能与测量师有关联 一个客户不能与另一个客户关联两次 我在SQL中为客户、帐户、证券和关联设置了表 就参考数据而言,企业有以下要求:账户、证券和协会可以是几种类型,例如,账户可以是储蓄、信贷;证券可以是债券、房屋,协会可以是客户1是客户2的检查员(检查员是协会)。他们不希望有很多表来存储这些类型中的每一种。他们需要一种通用的方法来存储数据库中的所有引用(类型)数据 我对此非

在我的数据库中,客户可以拥有多个帐户,并且一个帐户可以由多个证券进行保护。客户可以与银行中的其他客户关联。例如,房地产开发商可能与测量师有关联

一个客户不能与另一个客户关联两次

我在SQL中为客户、帐户、证券和关联设置了表

就参考数据而言,企业有以下要求:账户、证券和协会可以是几种类型,例如,账户可以是储蓄、信贷;证券可以是债券、房屋,协会可以是客户1是客户2的检查员(检查员是协会)。他们不希望有很多表来存储这些类型中的每一种。他们需要一种通用的方法来存储数据库中的所有引用(类型)数据


我对此非常陌生,我无法找到一种存储参考数据的通用方法。我是否需要另一个具有类型ID Pk的类型表,然后是描述(如果我这样做,则该表将与不相关的数据混合)?

据我所知,为了可靠和可升级,您必须提供一个需要在4NF中的设计。如果希望正确地执行此操作并避免任何可能导致数据库中存储的信息不一致的更新问题,则需要一组表来支持这些信息

让我们从基本表开始:

user_table                    
ID (PK, NN)                   
First Name                    
Last Name
Any other Field

account_type_table                    
ID (PK, NN)                    
Account Type (savings, checking, etc)

account_security_type_table                    
ID (PK, NN)                    
type of security (bond, house, etc)

users_account_table
ID (PK, NN)
UserID (Foreign Key from users table)
AccountTypeID (Foreign Key from account_type table)
AccountSecurityID (Foreign key from account_security_type table)
Any other information for the account
前面的方法仅适用于帐户的一种安全类型,如果您需要为单个帐户提供多个安全,我们需要修改user_account_表,并创建另一个表,将帐户链接到如下安全类型

users_account_table
ID (PK, NN)
UserID (Foreign Key from users table)
AccountTypeID (Foreign Key from account_type table)
Any other information for the account

account_security_table
ID (PK, NN)
AccountID (Foreign key from users_account_table)
SecurityID (Foreign key from account_security_type_table)
Any other field you need.

对于测量员部分,我真的不明白它是关于什么的,如果您进一步解释,我可能会帮助您。

如果您决定需要类型的查找表,那么是的,您可以创建一个类型的通用表,并添加一列来描述该类型的特定内容

  • TypeID—标识列
  • 类型描述-(例如:储蓄、信贷、, 债券、房子等)
  • 类型(或您喜欢的任何名称)-(例如:帐户、安全、, 协会)

大家好,欢迎来到SO。我根本不明白你在这里想干什么。您能发布一些关于您的表和您试图存储的数据的详细信息吗?另外,要注意标记,因为mysql和sql server不是一回事。因为您的问题是关于数据库设计的,所以它可能更适用于数据库管理员Stack Exchange网站。将鼠标悬停在右上角图标上可查看其他Stack Exchange网站。Hi。请给出明确的要求和一些设计。尝试一些记录适当信息的设计。请告诉我们您正在阅读的教科书/参考资料。否则,你只是要求我们重写这样一本教科书/参考书,并为你设计。