木子屋 Dnawo's BLOG

数据库结构设计中那些不得不冗余的字段

👤 dnawo 📅 2013-01-15 👁 4396 👍 0 💬 0 🔄 本站原创
在说正题前我们先看一个比较常见的用户提现表结构:

图片

用户提现(Withdraw)需要提供姓名、银行及卡号等信息,如上图所示,通过关联后这些信息可以从用户表(User)中读取,这样的结构也符合数据库范式。

现在我们来假设一种情况:某个用户申请提现,公司财务审核并成功处理了这笔提现,后来用户换卡,更改了帐户中的银行卡信息,自然,提现的卡号也随之变化,结果是公司财务查不出之前是给哪张卡提现了,问题严重了。

解决方法

在提现表增加姓名、银行及卡号等字段,这些字段虽然用户表中也存在,产生了冗余,但从实际应用出发,却是非常必要的:

图片

类似的情况还存在于发货单中的收件人信息等等。

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 GreaseMonkey脚本:淘宝卖家中心菜单定制 下一篇 → ASP.NET MVC3的Action返回值类型测试