我的数据库是否过度设计?

8 mysql database-design normalization

好的我是数据库设计的新手,请给我建议.

1 何时应使用复合索引?

我不知道索引做了什么,但我知道我们应该把它放在像WHERE Verified = 1那样重载,并在搜索中像company.name = something.我对吗 ?

2 MySQL索引 - 有多少足够?

它够了吗?

3 数据库规范化

它恰到好处吗?

alt text http://i28.tinypic.com/awp2cz.png

谢谢.

编辑*

规则.

  1. 每个用户(公司成员或所有者)可以是公司的成员
  2. 每个公司都有一些用户.
  3. 有公司管理员(首席执行官,管理员),有公司成员(插入产品)
  4. 每个公司都可以有产品.

对于数字3,我将在users_company中添加一点 - 1表示admin - 0表示成员

tho*_*ter 4

看起来不错,正常化,至少对我来说。

我注意到每种产品只能属于一家公司。如果这就是您的意图,那就没问题,否则您可以让产品拥有自己的 PID 并拥有一个 Product_company 关系表,这将允许多个公司销售特定产品。我猜这取决于谁管理这些产品。

我确实注意到用户表称为“用户”(复数),其他表称为单数(“公司”、“产品”)。不过这只是一件小事。