日期:2014-05-17  浏览次数:20813 次

这样数据库设计合理吗?符合八个范式吗?淘宝网数据库也这样
大润发超市进销存数据库
入库表
起初库存表
当前库存表
出库表

有新产品入库时,插入到入库表,起初库存表[与此同时,一个触发器,更新一下当前库存表]
有产品出库时,插入到出库表[与此同时,一个触发器,更新一下当前库存表]

请问,这样的触发器如何写吗?能实现这般复杂的东西。淘++++宝++++网数据库是如何设计吗呢?他人讲,这般频繁使用触发器会出问题。


------解决方案--------------------
在一个事务吗
------解决方案--------------------
触发器能不用就不用。直接使用修改。比如说插入到入库表,起初库存表之后,再更新当前库存表。别使用触发器,根本也没有必要。
------解决方案--------------------
一般来说互联网行业的数据,不会使用触发器,不会使用存储过程,不会使用外键,不会使用关联查询!
------解决方案--------------------
大型互联网应用的数据库基本上都会采用水平和垂直进行分表分库处理,这样的分表分库对应用来说是透明的。

像一些交易历史数据,原来只能查三个月之内的,不过现在已经迁到 HBase 上去了,可以查询所有的了。
------解决方案--------------------
互联网的数据库结构有很多的冗余,基本上不可能符合范式。

这些数据表弄弄就是上亿、上十亿的数据,所以使用触发器、存储过程、表连接查询都会对数据库服务器造成非常大的压力!