【发布时间】:2018-09-17 01:51:24
【问题描述】:
我刚开始学习数据库,在设计数据库时,我注意到很多建议,例如this thread,建议不要每个用户使用一个表,而是将所有数据保存在一个大表中并做一个需要时查询。但我还是不明白,因为在很多情况下,每个用户一张表似乎效率很高。
假设我有一个包含 10,000 名客户的数据库,供他们跟踪订单。每个客户的订单很少,大约 10 个。这样,每个客户登录,您将必须通过一个大表来获取该客户的数据,但是,如果您为每个用户保留每个表,您可以直接得到客户需要的东西。
另一个例子,餐厅信息系统跟踪所有餐厅的菜单(例如,在 [foodname, price] 对中),由于每家餐厅的菜数不同,您不能真正将每个菜单放在一行中,您可以只用 [foodname,price,restaurant] 行制作一张大桌子。但是餐厅很多,所以当用户需要某家餐厅的菜单时,就需要遍历所有餐厅的数据,显然效率很低。
对于这两个示例,如果我不想为每个用户创建每个表,我想不出设计数据库的好方法。所以我的问题是: 如果我们想避免每个用户设计每个表,我们应该如何为这种情况设计数据库?
【问题讨论】: