【问题标题】:More tables in database数据库中的更多表
【发布时间】:2019-02-20 14:39:29
【问题描述】:

我正在制作一个画廊网站。我从教程中学习了如何做每个部分,但我不知道我是否应该为用户信息/他们的个人资料图片/用户添加到画廊的照片制作不同的表格。我应该专注于尽可能减少表格数量(例如将个人资料图片和照片放在表格中)还是为所有内容制作不同的表格。会影响网站速度吗?

我正在使用 XAMPP 和程序 PHP。

【问题讨论】:

  • 您可以创建一个名称为画廊或照片的表格,并将所有画廊与用户 ID 列一起保存在这里。标准化更适合网站。为了性能或速度,您可以使用不同的方式来优化查询和代码。

标签: php database phpmyadmin


【解决方案1】:

经验法则始终是识别单独的实体(事物)并将它们放在单独的表中。想想这些实体之间的关系:

  • 照片属于画廊,
  • 照片属于用户,
  • 画廊可能归一位或多位用户所有。

(这些只是示例-可能在您的情况下有所不同)

通过这种方式,您将开始自然地使用关系数据库概念进行思考。

下一步是确定这些实体之间存在什么类型的关系。所以:

  • 用户可以拥有多张照片,但一张照片归单个用户所有(一对多关系或 1:n)
  • 用户可以拥有多个画廊,每个画廊可以由多个用户拥有(多对多关系或 m:n)

基于上述内容,您可以使用所谓的外键在这些事物表之间创建“连接”。阅读有关简单关系数据库设计的更多信息,您会没事的。

关于速度。暂时不用担心。该数据库旨在允许我们创建许多不同的相关事物表,并且为此进行了高度优化。一旦您的表格中有数百万个项目,您就可以担心优化问题。

【讨论】:

  • 也许画廊不是正确的词。它将更像 Instagram,用户将拥有一张个人资料照片和更多照片,这些照片将显示在他们的页面上。我已经有包含 3 列的个人资料照片表:id、用户 ID、状态(状态为 0 或 1,具体取决于他们是否已经有个人资料图片)。那么他们添加的照片应该在新表中吗?
  • 不,我只会将所有照片放在系统中,而不管它们在单个表中的用途。然后例如,如果用户可以拥有一张个人资料照片,则将 profile_photo_id 添加到用户表中,该表将保存照片表中照片的 id。而且很可能您不需要任何单独的“画廊”实体,并且现在可以使用用户和照片表。
【解决方案2】:

我认为你是初学者所以你可以从这里了解更多

https://www.youtube.com/channel/UC8Nbgc4vUi27HgBv2ffEiHw

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多