【问题标题】:Elements with common and separate properties in a database数据库中具有共同和单独属性的元素
【发布时间】:2013-05-04 12:35:04
【问题描述】:

我有一个带有表post 的数据库,用户可以提交多种类型的帖子,所有这些类型共享属性,并拥有自己的属性。例如:视频和标准帖子都有description,但只有视频帖子有视频链接/文件属性。

我所做的是创建一个包含公共属性的表格帖子,例如 creationDatedescription

我创建了其他表格,包含其他属性,随着帖子类型数量的增加,我想我将不得不添加更多表格。

当然,这种设计的问题是,当我要检索一个帖子时,我必须从posts表中检索它的数据,然后使用它的IDType从类型中检索数据表(例如:视频表)。而当我想在一页中检索不同类型的数据时,我将不得不处理许多表。

这似乎不切实际,因为我在 Apache 服务器中使用 PHP/MySQL。

我可以实施其他更好的想法来获得相同的结果吗?

【问题讨论】:

    标签: php mysql database database-design


    【解决方案1】:

    您的设计遵循 中描述的技术。信息选项卡中有该技术的概述。

    您可能想探索使用 来加快速度,以及将post-id 用作FK 的方法,而不必为每种帖子类型设置不同的FK 类型。它还可以加快连接速度。

    不利的一面是,每当您发现新的帖子类型时,您都必须添加一个新表格。但是,如果您要构建对象模型,则必须在同一发现时添加新的子类。

    【讨论】:

    • 谢谢我的朋友,我会尝试使用共享主键,当然我考虑创建子类,因为我使用的是 POO/MVC 模型。再次感谢
    • 一般来说,数据库设计的效果会随着网站的增长而显现。我现在看不到这个优化的效果。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多