0

我正在为下一步将要构建的旅行社交网络应用程序创建数据库。这是我迄今的工作。表名非常明了。我的问题是 - 这是一个好方法吗?我希望听到您的意见和建议,以便在数据组织和性能方面让这个模型更好。旅行社交网络数据库设计

图片:

Left part of ER diagram

Right part of ER diagram

难道是things_to_do -> events|places -> ...分公司使用推广的好方法吗?至于现在我必须至少进行3次连接才能获得有关特定地点的基本数据,甚至还需要其他信息。我应该为每个things_to_do制作单独的表格,并为每个表格添加新的多对多连接表以提高性能?当我说表演时,我强调搜索查询。我怎样才能使这个可扩展性?我应该使用其他数据库模型吗?

+0

这是太模糊的问题。你应该让它更精确,否则它有可能很快就会关闭。 – ApplePie

+0

好的,谢谢。我已经说得更具体。 – Kodin

回答

1

当ER图描绘数据的概念模型时,通常使用术语“泛化”和对应术语“专业化”。概念模型根据主题描述数据的语义,而不预先判断哪种设计会更好。概念ERD确实与数据分析有关,而不是数据库设计。

另一方面,您的图表显然是设计文档,而不是分析文档。它反映了你构建关系数据库的意图,而不是其他类型。所以你的方框代表表格,而不是更抽象的“实体”或实体之间的关系。

泛化/专业化在对象建模中有一个对应物,称为类型/子类型或类/子类设计。当需要以表单形式实现类/子类模式时,这种设计并不直观,而且这种情况通常会在数据库设计教程中传递。

您应该访问这三个标签,然后点击“了解更多”以获得您可能想要考虑的三种技术的概要:

您会在性能,编程简易性和未来适应性之间找到一个很好的平衡点。