我发现这很多,我不确定接近它的最佳方法.
我的问题是如何在使用外键查找表或直接在请求它的表中使用查找表值之间做出决定,完全避免查找表关系.
要记住的要点:
使用第二种方法,如果在查找表中更改了数据,则需要对引用数据的所有记录进行批量更新.
这更侧重于有很多列引用许多查找表的表.因此,每次查询表时,许多外键意味着很多连接.
这里有最佳实践,还是需要考虑的关键点?
您通常会规范化数据库以避免数据冗余.在一个充满名称的表格中很容易看到有足够的冗余.如果你的目标是创建一个地球上每个人的名字目录(祝你好运),我可以看到规范化名称是如何有益的.但在平均业务数据库的背景下是否过度杀伤?
(当然我知道你可以采取任何极端的事情......如果你将音节标准化为音节......或者甚至是相邻的角色对.我看不到这么远的好处)
更新:
一个可能的理由是随机名称生成器.这就是我能想到的一切.
好的我是数据库设计的新手,请给我建议.
我不知道索引做了什么,但我知道我们应该把它放在像WHERE Verified = 1那样重载,并在搜索中像company.name = something.我对吗 ?
它够了吗?
3 数据库规范化
它恰到好处吗?
alt text http://i28.tinypic.com/awp2cz.png
谢谢.
编辑*
规则.
- 每个用户(公司成员或所有者)可以是公司的成员
- 每个公司都有一些用户.
- 有公司管理员(首席执行官,管理员),有公司成员(插入产品)
- 每个公司都可以有产品.
对于数字3,我将在users_company中添加一点 - 1表示admin - 0表示成员