netbeans 根据用户提交的信息匹配用户

hk8txs48  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(139)

我知道这是一个非常宽泛的问题,这就是为什么我希望得到一个宽泛的答案。我只是希望被引导到正确的方向。简单地说,我打算做一个网站,用户可以包括特定的数据在他们的个人资料,并与其他用户已输入相应的数据匹配,以创建一个“匹配”。类似于一个约会网站,匹配用户的基础上最好的“化学”。然而,这甚至比那更简单。我确实有NetBeans的编码经验,并且正在不断扩展我的网站开发知识。
例如:

101, 102 and 103 = MATCH  
User A - Data [User lists they have 101]
User B - Data [User lists they have 102 and 103]

用户A或B使用“Find Users Who Complete Your Set”(查找完成您的集合的用户),并且表格或列列出了完成此集合的所述用户。
所以,如果有人能至少给我指出正确的方向,我将不胜感激!我已经在www.example.com上做了几个网站Webs.com但我不相信他们的工具有任何类似的东西来满足这个需求。我打算使用Java(可能与NetBeans)编程这个匹配的系统,并在网站中实现。谢谢大家!!!

vdgimpew

vdgimpew1#

您可能希望使用一个数据库来存储您的用户以及所有可能的属性集,这些属性集可以用来完成匹配。以下是使用PostgreSQL创建这样一个数据库的一种方法:

create table person (
  id int primary key,
  first_name text not null,
  attributes text[]
);

create table match (
  id int primary key,
  attributes text[] 
);

insert into person values (1, 'Bob', array['A']);
insert into person values (2, 'Alice', array['B','D']);
insert into person values (3, 'Carol', array['B','C']);
insert into person values (4, 'Ted', array['D']);
insert into match values (1, array['A','B','D']);

我使用数组而不是连接表来减少冗余。现在,您可以通过运行以下查询来查找完成Alice的集合#1的所有人员:

select
  id,
  first_name
from  
  (select
    p2.id as id,
    p2.first_name as first_name,
    array(      
      select unnest(p1.attributes) union select unnest(p2.attributes)
    ) as match_potential
  from
    person p1
    inner join person p2 on (p1.id = 2 and p2.id <> 2)) as p
where
  p.match_potential @> (select attributes from match where id = 1);

鲍勃和爱丽丝现在匹配了。
最后你需要做一些更复杂的事情,但是像这样的事情应该会让你开始你的网站,并允许你建立你的第一个原型,你可以用来测试你的概念。

相关问题