Mdi*_*ion 7 database settings schema
我为用户设置了大约200个设置,其中包括通知设置和用户对象活动的跟踪设置.问题是如何将其存储在数据库中?每个设置应该是一行还是一列?如果colunm那么表将有200个colunms.如果行然后大约3个colunms但每个用户200行x甚至1000万用户=不好.
那么我怎么能存储所有这些设置?注意:这些设置是文本输入和FK查找与其他表的混合.
谢谢.
对数据进行序列化几乎总是一个坏主意,因为这样做会削弱 dbms。用于生产高效 dbms 的所有人年都将浪费在序列化的比特桶上。
如果您将应用程序逻辑与每个设置挂钩,我认为您应该将其实现为:
设置表中的每个设置 1 列。 这可以更轻松地利用 dbms 的强大功能,包括约束检查、参照完整性、值的正确数据类型、优化器的大量信息。缺点是行大小会增加。
或者
每个设置(或一组相关设置)1 个表。 这具有上述所有优点,但当您需要一次获取大部分或所有设置时,会用 rowsize 换取性能损失。当设置是可选的时,如果实际数据稀疏,则此替代方案会小得多。
此外,很多列通常是一种“气味”,这表明您没有正确地对数据进行标准化,但不一定是这样。只有您知道您的数据。
您有 200 个设置需要跟踪,这表明数据库架构很灵活。因此,我建议采用混合方法:
我认为更大的答案是你不会从最初的问题中得出一个解决方案,而是需要使用两者来适应数据。