【问题标题】:php differentiate between different table id's?php区分不同的表ID?
【发布时间】:2013-04-16 21:15:22
【问题描述】:

我有不同的具有 id 的对象,所有的 id 都是唯一的。

对象

  • 照片
  • 饲料
  • 事件
  • 评论

所有的 id 都是独一无二的,再也不会重复了。

我想像这样在 url 中传递该 ID:http://domain.com/{object_id} 和对象 ID 应该告诉我它属于哪个对象以及它的 ID 是什么。也许通过 php 来做。

我在某处读到,它可以通过带有前置文本或不同 ID 的 base_convert 来完成。不确定。

已编辑:

当前 ID 和网址

假设我们在此页面上http://domain.com/654156165165,我们如何知道这是照片、提要、事件或评论的 ID?

解决方案 1 我正在考虑

  • 通过前置/附加一些整数来重现 id,以识别它属于哪个对象
  • 使用新 ID http://domain.com/654646545412 请求页面
  • 用 php 检查这个 id 属于哪个对象以及该对象的实际 id 是什么(在删除前置/附加整数之后)

【问题讨论】:

  • 触摸以了解您想要实现的目标。给我们一些示例,说明您希望 URL 的外观,例如,照片 URL 的外观、供稿 URL 的外观等。
  • 那么,这里有什么问题?从 URL 获取 {object_id} ?

标签: php mysql sql complexity-theory object-identity


【解决方案1】:

只需查询数据库以获取对象详细信息。我确定您在那里存储了对象类型。

【讨论】:

  • 为了找到一个对象,我必须查询每个表,直到找到它属于哪个对象,这对于许多对象来说开销太大。
  • 我应该为对象创建单独的表吗?每当使用 id 创建行时,然后在对象表中插入带有 type 的行 id?你喜欢那个吗?
  • 要么您的 id 确实是唯一的 - 因此您有一个单独的表来保存所有对象,或者您不需要唯一性,但必须为不同的类型使用单独的序列。
  • 在每次插入时,将是两个插入。一个用于实际行,一个用于对象表。可以吗?
  • 可能是。从如此有限的数据中很难判断。您最好单独提出一个问题以获取有关数据库结构的建议。
【解决方案2】:

您应该在数据库中查询该对象。您提到这由于开销而令人望而却步,但是只要您在查询中包含WHERE id = :objectID,通过适当的索引,这应该不会很糟糕。或者,您可以创建一个对象表,其中包含所有 ID 及其对象类型,查询该对象,然后仅查询适当的表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    相关资源
    最近更新 更多