0

私は何百ものフィットネス目標の表を持っています。以下はサブセットです。

  1. 「私は10ポンドを失いたいです。」
  2. 「6分未満で1マイル走る。」
  3. 「7分未満で1マイル走る。」
  4. 「水着の準備をして、5ポンドを失うこと。」
  5. 「1マイル走れるのは7分未満です。」

同様のフィットネス目標の一致を見つけるにはどうすればよいですか?たとえば、#1と#4はどちらも体重を減らしたいと考えており、#3と#5はどちらも7分未満で1マイル走りたいと考えています。また、#2、#3、および#5はすべて、より高速に実行したいと考えています。このフィットネス目標の表を効率的に検索して、どの目標が類似しているかを判断するにはどうすればよいですか?目標はmysqlテーブルに保存されます。PHPでの実装を探しています。

4

3 に答える 3

1

さて、あなたは「体重」、「ポンド」、「ポンド」のようないくつかのキーワードにフラグを立てるかもしれません、そして後で管理者によってチェックされることができます

于 2012-08-18T23:34:14.777 に答える
1

これは、次の2つの方法のいずれかで実行できます。

PHP内では、同様のテキスト関数を使用できます。ただし、これはごく普通の方法です。

より良いアプローチは、Mysqlの全文検索を使用することです。問題は、データベース内の2つの行を比較することはできず、テーブル内のデータに対してテキスト文字列を比較できることです。

に基づく例:

mysql> CREATE TABLE articles (
    ->   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    ->   title VARCHAR(200),
    ->   body TEXT,
    ->   FULLTEXT (title,body)
    -> ) ENGINE=MyISAM;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO articles (title,body) VALUES
    -> ('MySQL Tutorial','DBMS stands for DataBase ...'),
    -> ('How To Use MySQL Well','After you went through a ...'),
    -> ('Optimizing MySQL','In this tutorial we will show ...'),
    -> ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
    -> ('MySQL vs. YourSQL','In the following database comparison ...'),
    -> ('MySQL Security','When configured properly, MySQL ...');
Query OK, 6 rows affected (0.00 sec)

mysql> SELECT id, MATCH (title,body) AGAINST ('Tutorial')
    -> FROM articles;
+----+-----------------------------------------+
| id | MATCH (title,body) AGAINST ('Tutorial') |
+----+-----------------------------------------+
|  1 |                        0.65545833110809 |
|  2 |                                       0 |
|  3 |                        0.66266459226608 |
|  4 |                                       0 |
|  5 |                                       0 |
|  6 |                                       0 |
+----+-----------------------------------------+
6 rows in set (0.00 sec)

これにより、最適な一致に従って結果がランク付けされます。

これをうまく使用してデータベースから行を取得し、これを使用して最適な行を見つけることができます。

于 2012-08-18T23:37:41.543 に答える
0

これは私が暗闇を突っついているだけですが、複数のブール値を持つことができます。

runFaster=true;
loseWeight=true;
specificDistance=true; //Do they have a specific distance in mind?

およびいくつかの定量値:

weightLoss=3; //lbs
speedIncrease=1 //km/h
runDistance=7 //miles

そんな感じ?

于 2012-08-18T23:43:52.783 に答える