sql - 规范化 SQL 数据库

标签 sql sql-server-2008 normalization

我正在为一个项目创建一个数据库,我对如何将规范化应用到我的模式感到有点困惑。每次为客户批准贷款时,他们都有 2 个选项:支票或电子转帐,所以我想知道贷款是支票还是电子转帐。

这是我的 3 个表:

贷款

id_loan (PK)
product
amount 
status

支票

id_check (PK)
id_customer
amount

电子转帐

id_eft (PK)
id_customer
amount

然后我创建了第 4 个表来建立贷款和资金处置之间的关系。

处置

id_payment (PK)
id_loan (FK loans)
id_disposal (FK checks or EFT)
disposal_type

在这个表中,我存储了贷款是与支票还是 EFT 相关,disposal_type 字段是一个具有两个可能值“check”或“EFT”的 varchar。 id_disposal 字段充当两个表的外键。

问题是我认为我的数据库没有用这种结构规范化,对吗?解决此问题的最佳方法是什么?

最佳答案

您需要附件之类的东西。请注意,customer_loans 表有点无关紧要且矫枉过正,但如果有任何列与客户和贷款相关,而不是与客户的贷款支付相关,那么它就会放在那里。

Loans Schema

关于sql - 规范化 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7419160/

相关文章:

sql - MySQL 中的更新问题

SQL: float 转小时格式

sql - 什么时候可以将JSON或XML数据保存在SQL表中

mysql - 是否有更有效的方法来遍历此 sql 结果集?

Java SQL Select 语句在 WHERE 子句中使用多个变量

sql - 数据仓库暂存区内的结构

asp.net - 如何在查询字符串中传递两个参数?

c# - CLR 存储过程中的全局异常处理程序

python - 用条件标准化 Pandas 系列

python - 确定一个企业名称是否与另一个非常相似 - Python