我知道网站上已有一些关于此主题的问题......
我只是想了解使用ASP.NET Profile Provider与一个流量巨大的网站是否安全?
我看待它的方式,它的布局效率低下.您存储属性名称(这是一个字符串)和属性值(也是一个字符串).如果您只是想在配置文件中存储甚至年龄,则不必要地将字符串"age"一遍又一遍地存储在数据库中,而使用自创建的表,您只需添加一个标题为age的列,而不是冗余?
(我只是想确保我不会错过任何关于它的东西,因为我对它很新.)
配置文件提供程序故意使用EAV(实体 - 属性 - 值)设计,因为配置文件通常通常具有稀疏填充的模式 - 也就是说,有许多潜在的属性,但只有少数将用于给定的单个实体,从一个实体到另一个实体,使用的少数因素各不相同.
让我们使用一个完全随意的例子 - 假设只有十分之一的用户希望提供他们的年龄.现在把它作为一个专栏似乎更像是浪费,不是吗?
但是如果您的申请强制要求年龄呢?好的,该列填充了每个人.但是如果你需要在配置文件中做一个注释"用户不想再看到这个模糊的对话框"了.对于应用程序中的每个对话框,您是否真的想要一个列,用户是否想要查看它?可能不是.当您了解任何重要范围应用的一次性细节时,EAV实际上成为更经济的选择.
在一般情况下,它可以很好地扩展(远比你想象的要好得多).具体而言,并不重要 - 一如既往地使用可行的方法并在出现时解决性能问题.无论配置文件提供程序的可伸缩性限制是什么,您都会知道何时访问它们.我保证两件事 - (1)在你必须解决之前,你必须解决许多你没想到的其他性能问题; (2)如果您的网站获得足够的流量来破坏配置文件提供商,那么这是一个很好的问题.
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |