针对多种用户类型的关系型数据库设计
在设计容纳多种用户类型的关系型数据库时,考虑高效的存储和存储是至关重要的。检索用户数据。处理这种情况的两种主要方法是:
单表继承 (STI)
STI 涉及为所有用户类型创建一个带有“鉴别器”的表指示每行特定类型的列。不适用于特定用户类型的列保留为 NULL。
优点:
缺点:
类表继承(CTI)
CTI 与 STI 不同,它为每种用户类型使用单独的表。公共“用户”表保存共享信息,而特定于类型的表包含子类相关数据。子类表通常使用外键引用“users”表中的匹配行。
优点:
共享主键设计 (SPK)
CTI 的变体,SPK 涉及设置主键子类表的键是“users”表中相应行的主键的副本。这种技术确保了表之间的主键和外键关系。
优点:
STI 和 CTI 之间的选择取决于应用程序的具体要求。当不同的用户类型具有相似的数据结构以及需要跨类型的高效数据检索时,STI 是合适的。当数据结构变化很大且引用完整性和定制存储很重要时,CTI 更可取。 SPK 通过提高性能和加强一对一关系来增强 CTI。
以上是单表继承或类表继承:哪一个最适合您的多用户数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!