2

我在想如何用 PHP 和 MySQL 进行配对,但我找不到。

例如,我们有一个 mysql 用户表,用户设置了一些配置文件,我们用百分比计算配置文件。

我们简单的mysql表:

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL DEFAULT '',
  `email` varchar(255) NOT NULL DEFAULT '',
  `gender` enum('M','F') NOT NULL DEFAULT 'M',
  `answer1` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer2` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer3` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer4` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer5` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer6` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer7` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer8` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer9` enum('Y','N') NOT NULL DEFAULT 'Y',
  `answer10` enum('Y','N') NOT NULL DEFAULT 'Y',
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `email` (`email`),
  KEY `gender` (`gender`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

我们的行:

INSERT INTO `users` (`id`, `username`, `password`, `email`, `gender`, `answer1`, `answer2`, `answer3`, `answer4`, `answer5`, `answer6`, `answer7`, `answer8`, `answer9`, `answer10`) VALUES
(1, 'maleuser1', '123456', 'male1@male1.com', 'M', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'Y', 'N', 'Y'),
(2, 'maleuser2', '123456', 'male2@male2.com', 'M', 'Y', 'Y', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y'),
(3, 'femaleuser1', '123456', 'female1@female1.com', 'F', 'Y', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'Y'),
(4, 'femaleuser2', '123456', 'female2@female2.com', 'F', 'Y', 'Y', 'Y', 'N', 'Y', 'N', 'Y', 'N', 'N', 'Y');

您可以看到我们有 2 名男性和 2 名女性用户(通常会有数千名),我想搜索最匹配的女性配置文件以获取具有百分比的男性配置文件。

例如我们将查询:

select username, blabla as percentage 
from users where gender = 'F' 
and ("here best matchmaking codes") 
and we show users; femaleuser1 and you matching %85.

我们只会显示大于 %70 的匹配。

所以我正在谈论这个,但我无法解决。

4

1 回答 1

0

基本上,您无法将苹果与橙子进行比较。您可以寻找分配并最大化工人和工作。在您的问题描述中,它将最大化女性和男性对。寻找匈牙利算法或 edmonds v 开花算法。

于 2012-10-28T04:05:37.353 回答