我已经复习了一些问答,但是我认为一些与我的主题相关的东西会帮助我摆脱困境。
我有一个应用程序,它根据几个不同的公式和数百种不同的材料类型计算价格。
使用者A可使用公式A及材料A、B、C 用户B使用公式A,材料A,B,C,+他们想要添加一个没有人使用材料unique_A的材料
当用户A在应用程序上时,他不想看到用户B的独特材料。
我在考虑为每个用户使用一个独特的材料表,以便“更快??更高效?”来获取材料列表,而不是试图设置某种关闭功能,它只从一个全局表中获取用户想要的材料。
哪条路更好?为每个用户提供一个表还是一个唯一的表?
发布于 2013-03-07 15:58:29
你可以有一张所有材料的桌子。
materials = (id, name, other attributes...)和一张用户表:
myusers = (id, name, etc....)然后,您可以使用一个表来表示这两种关系之间的多到多关系:
user_materials = (user_id, material_id)然后,您可以通过连接这些表来选择用户使用的特定材料。就应用程序而言,这种安排比尝试为每个用户创建一个表要好。查询将变得困难。这样,您也可以回答以下问题:哪些用户使用的是A材料?
发布于 2013-03-07 16:00:01
除非您的用户很少,每个用户都有自己稳定的、不变的项目,否则我认为这样做没有任何意义。另外,如果你谈论的是一个用户和材料的领域,你很可能不会陷入性能问题。也不会有几百万人,对吧?
发布于 2013-03-07 16:00:53
数据库的一个“最佳做法”是减少信息的两面性。实际上,在任何理论领域都存在着这种变化。
但是,这意味着您为每个用户创建一个唯一表的方法并不是一个好主意。它不仅会复制数据,而且随着用户数量的增加,维护这样一个数据库将成为一项巨大的任务。
我更希望有一个全局的材料表,一个用户的表和一个表的用户想要的材料。
“单表方法”可以更好地考虑,因为它降低了复杂性,无论是在数据库中还是在应该访问数据库的代码中,以及信息的重复。
https://stackoverflow.com/questions/15275675
复制相似问题