首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态创建或不创建表

动态创建或不创建表
EN

Stack Overflow用户
提问于 2013-03-07 15:53:13
回答 3查看 30关注 0票数 0

我已经复习了一些问答,但是我认为一些与我的主题相关的东西会帮助我摆脱困境。

我有一个应用程序,它根据几个不同的公式和数百种不同的材料类型计算价格。

使用者A可使用公式A及材料A、B、C 用户B使用公式A,材料A,B,C,+他们想要添加一个没有人使用材料unique_A的材料

当用户A在应用程序上时,他不想看到用户B的独特材料。

我在考虑为每个用户使用一个独特的材料表,以便“更快??更高效?”来获取材料列表,而不是试图设置某种关闭功能,它只从一个全局表中获取用户想要的材料。

哪条路更好?为每个用户提供一个表还是一个唯一的表?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-07 15:58:29

你可以有一张所有材料的桌子。

代码语言:javascript
复制
  materials = (id, name, other attributes...)

和一张用户表:

代码语言:javascript
复制
  myusers = (id, name, etc....)

然后,您可以使用一个表来表示这两种关系之间的多到多关系:

代码语言:javascript
复制
  user_materials = (user_id, material_id)

然后,您可以通过连接这些表来选择用户使用的特定材料。就应用程序而言,这种安排比尝试为每个用户创建一个表要好。查询将变得困难。这样,您也可以回答以下问题:哪些用户使用的是A材料?

票数 2
EN

Stack Overflow用户

发布于 2013-03-07 16:00:01

除非您的用户很少,每个用户都有自己稳定的、不变的项目,否则我认为这样做没有任何意义。另外,如果你谈论的是一个用户和材料的领域,你很可能不会陷入性能问题。也不会有几百万人,对吧?

票数 0
EN

Stack Overflow用户

发布于 2013-03-07 16:00:53

数据库的一个“最佳做法”是减少信息的两面性。实际上,在任何理论领域都存在着这种变化。

但是,这意味着您为每个用户创建一个唯一表的方法并不是一个好主意。它不仅会复制数据,而且随着用户数量的增加,维护这样一个数据库将成为一项巨大的任务。

我更希望有一个全局的材料表,一个用户的表和一个表的用户想要的材料。

“单表方法”可以更好地考虑,因为它降低了复杂性,无论是在数据库中还是在应该访问数据库的代码中,以及信息的重复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15275675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档