假设我正在构建一个约会应用程序,根据用户的约会目标生成推荐。假设用户在数据库中是这样表示的:
Column | Type
---------------------+-----------------------------
id | bigint
updated_since | timestamp
goal | text
假设goal
的值可以是以下四项之一:
seeking_sugar_daddy
seeking_sugar_mama
be_sugar_daddy
be_sugar_mama
现在,假设我有一个定期运行的推荐引擎,它根据目标和其他一些标准(身高、年龄等)为所有用户生成匹配项。推荐引擎将一对用户作为输入并生成分数。你知道吗
生成推荐引擎输入列表的最有效方法是什么?唯一有效的输入是具有匹配目标的对-例如,如果User A
有一个目标seeking_sugar_daddy
,User B
有一个目标be_sugar_daddy
,这将是一个有效的输入,但是seeking_sugar_daddy
和be_sugar_mama
将不是一个有效的对。你知道吗
一旦我从数据库中获取了所有用户,我应该如何对他们进行分组?或者有没有办法在数据库中这样做?你知道吗
您需要一个
relationship
表来配对属性。(当然您使用的是ids no text)然后你像这样匹配用户
注意:这允许您稍后添加更多属性,而不是硬编码查询中的条件。你知道吗
另外,我复制/反转关系以使类似
who are the match for 'UserA'
的搜索更容易。但是,如果您只需要所有的用户匹配,就不需要复制。你知道吗让我们将您的目标缩写为
"A"
、"C"
、"G"
、"T"
,其中A匹配T,C匹配G。以下是您的匹配:注意,由于相同的表出现在左侧和右侧,因此不需要检查
a.goal = "T"
等相关问题 更多 >
编程相关推荐