【发布时间】:2026-02-14 05:30:01
【问题描述】:
我有以下表格:
user、logbook、user_logbook
用户日志是一个联结表(schema.xml 中的isCrossRef="true"),包含user_id 和logbook_id 外键。
我还想记住任何给定用户当前选择的日志,所以我在我的user 表中也放了一个current_logbook_id,并给它一个外键。但是,在我的 BaseUserQuery.php 文件中,我得到了两个 filterByLogbook() 函数。
我知道当你有两个外键指向同一个表时,来自同一个表,你会得到像getUserRelatedBySomething()和getUserRelatedBySomethingElse()这样的函数,但是最好的方法是这种情况?
我当然可以删除外键并使用保存的 ID,或者我想我可以创建一个新的联结表(尽管这似乎不正确)。在这种情况下,最好的办法是在 MySQL 和 Propel 中“做正确的事”(希望我能做到这两点!) .
【问题讨论】:
-
除非已经有我不知道的方法,否则我怀疑正确的做法可能是分叉 Propel 并添加一个干净的方法来处理这种情况。想想善业吧!
-
那么您是否相当有信心没有可能的方法?
-
其实我觉得有——看我的回答