【发布时间】:2011-07-05 20:57:10
【问题描述】:
这是我的团队遇到的用例:
系统中有不同类型的对象(例如:用户、照片、链接、视频、标签、照片标签等)。现在每个对象都有自己的表。出于任何目的(例如实时提要、活动跟踪、标记不同的对象类型等)查找对象时,理想情况下,系统需要知道三件事:
1) 对象ID
2) 对象类型
3)来自对象的对象详细信息取决于用例
对于 1 和 2,我通过添加两列来处理它:object_id、object_type - 这将始终告诉我 ID 以及 Id 所指的对象。但是对于第 3 步,问题是要获取对象详细信息,我需要知道每个对象与哪些表相关。那么我该怎么做呢?我正在使用 MySQL 和 codeignitor php。
我能想到的一种方法是创建一个在对象和模式表之间建立关系的表。但缺点是我必须总是加入这个来获取表名,然后查找该表。我希望跳过任何加入。在 codeignitor 中是否可以为此或添加任何应用程序逻辑来完成任何操作,这些逻辑可以根据对象类型动态检测要引用的表?也许我什至不需要 object_Type 列,系统可以仅从 object_id 和 page_id 或其他东西自己找到表?
【问题讨论】:
标签: php mysql database-design codeigniter