惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
罗磊的独立博客
F
Fortinet All Blogs
T
Threatpost
Y
Y Combinator Blog
博客园_首页
美团技术团队
Security Latest
Security Latest
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
V
V2EX - 技术
The Cloudflare Blog
L
LINUX DO - 热门话题
博客园 - 司徒正美
Jina AI
Jina AI
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
The Hacker News
The Hacker News
P
Privacy International News Feed
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Latest news
Latest news
NISL@THU
NISL@THU
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
雷峰网
雷峰网
Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog RSS Feed
W
WeLiveSecurity
D
DataBreaches.Net
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
S
Securelist
Help Net Security
Help Net Security

博客园 - 足够有晋

ReflectedSchemas应该定期清理否则会占用大量C盘空间 IIS7的应用程序池 iis7 应用程序池回收设置 学习资产项目后的心得 删除SQL日志语句,经测试8G日志文件都可以删除 高效的SQL语句翻页代码 ExtJS Combobox 属性详解和默认值选中(转) 关于document.all.item方法在ie8下报脚本错误的问题 Asp.net iFrame 传值(转) - 足够有晋 Asp.net C#代码操作Excel 调整格式(转) - 足够有晋 水晶报表,解决——提示“您请求的报表需要更多信息.”(转) - 足够有晋 VS2008 水晶报表 打印对话框无法下载问题的解决办法(转) - 足够有晋 C# 将数据导出到Excel汇总Webform,Winform(转) - 足够有晋 删除表记录中重复的字段(转) - 足够有晋 内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档 问题的一种解决办法 - 足够有晋 解决Excel导入时必须默认Sheet1工作簿问题 - 足够有晋 幸福是什么 - 足够有晋 linq to sql 使用试图做数据源 翻页时出现的异常的一种解决办法 - 足够有晋 获取表记录的小工具 - 足够有晋
数据库设计中的一些小经验,拿来分享一下(有血的教训)。
足够有晋 · 2011-12-14 · via 博客园 - 足够有晋

  在以往的数据库设计中遇到一些问题,由于当时缺乏经验造成了一些影响,所以在今后的工作中要加强这些地方的考虑。

1.对价格,温度等有可能变化的数据,在引用的地方只保存了相应的ID,而没有保存具体内容。比如:产品表里面有:名称、价格、类型等字段。订单表里面只存了产品ID,这样当产品价格变化时,再统计时价格就和当初订货价格不一样了。所以在订单表里面需要保存订货时的价格。

2.通过多级关系来获取相应记录。比如:文件表里面有创建人ID对应人员表,人员表里面有部门表ID。这样当过滤部门条件时,直接可以找到部门信息。但是这没有考虑到人员调整部门的情况,如果人员部门变化了,就会造成该人员创建的文件记录都跑到新的部门名下了。所以文件表还必须保存一个部门表的ID。

3.一些当时认为不会变化的数据几年后发生了变化。最明显的就是省市区名称变化。刚开始工作时,一个项目中对区县记录没做基础表,而且数据库里面直接存的就是区县的名称,当时考虑不会变化的,但是过了几年区县规划了,这时就造成就很大的问题,解决这个问题花费了大量人力和时间。此后再做项目时就把所有基础项都建立了相应基础表,使用的地方也都引用外键来处理。

4.对应图片、文件之类的保存在数据库表里面,还是保存的项目的相应文件夹里面,对这个问题一直没有完善的解决办法。存数据库表的一个字段里面,这样好处是备份方便,只有把数据库备份了所有数据都丢不了,缺点是数据库会越来越大,有的项目几个后数据库都有10G以上了。 保存在项目文件夹里面正好相反。

5.一些表建立的是联合主键,这种造成一些操作很麻烦,而且效率也不高。所有以后在建表时都建立唯一自增主键,这样维护起来很方便,对于主从表操作也简便。

  以上都是在SQLServer数据库上的经验,其他数据库没试过。