0

さて、この質問はコーディング手順についてではありませんが、このアクティビティリストをコーディングするための優れたクリーンな方法のように、私は構築する予定です。

このアクティビティリストには、ページ上のすべてのアクティビティが含まれます。

したがって、基本的に、ページで行われるすべてのアクションで、関数のようなものを呼び出して、それinsertActivity($stuff)に関するアクティビティを挿入します。たとえば、何かをしただけです。

今、私はコーディング方法を考えています、どうすればいいですか?

dbの行に「あなたは何かをした」というメッセージを表示する必要がありますか、それともphpファイルで番号1が「あなたは何かをした」を表すと定義する番号を含める必要がありますか?

メッセージがdbに保存されていない場合、後ですべてのアクティビティメッセージのメッセージを編集するのに役立ちます。たとえば、メッセージを「何かを食べただけ」に変更する必要がある場合などです。

アクションの保存の前後に関数を呼び出すこと、このアクションをアクティビティリストにログインすること、またはその他の好ましい方法について前に述べたように行う必要がありますか?

私が念頭に置いていたのは、insertActivity()は、取得した入力($ stuff)によって、アクティビティをデータベースに挿入するだけでよいということでした。

これを行うためのシンプルでクリーンなコーディング方法に本当に感謝しています。

4

3 に答える 3

1

それは...不可能な質問です。答えるのが難しいという事実で不可能ではありません、良い答えを与えることが不可能であるという点で不可能ではありません、多くの、多くの異なる良い答えがあり、「正しい」答えがないので不可能です。

2つのテーブルを持つことについては、多くのことが言われています。1つは説明用であり、もう1つは説明IDを参照する外部キーを持っています。値の取得は次のように簡単です。

SELECT -- your other columns can go here.
       (SELECT DESCRIPTION FROM DESCRIPTIONS DE 
            WHERE DE.ID = DID.DESCRIPTION_ID LIMIT 1) as ACTIVITY
            -- I always add a LIMIT in a sub-query...
       -- your other columns can go here.
       FROM DID_THINGS DID WHERE USER_ID = 1;

MySQLは、アクティビティの数がかなり限られている場合(およびそれらが事前にわかっている場合)、このタイプの構造を少し簡単にします。ENUMタイプを調べる必要があります。ただし、ENUMを使用すると、それがサイトを変更する最も厄介な方法になります。個人的には、2番目のテーブルオプションが好きで、頻繁に使用します。管理者が「あなたは何かを見ました」のようなものを追加できるようにしたい場合は、Webフォームを介してそれを公開し、データベースへの貴重なキーを、私を含め誰も知らない場所に隠しておくことができます。

物事を行う別の頻繁な方法は、単に連想配列(またはハッシュなど)を持つことです。これの利点は、データベース接続が含まれない可能性があり、非常に単純であり、テストとデバッグが非常に簡単で明白なことです。これらのために(とりわけ)、これが国際化スクリプトで使用されているのを見つけることは非常に一般的です。問題は、これらの配列の1つに何かを追加するには、実際に移動してファイルを変更してから、ファイルをサイトのすべてのバージョンに再展開する必要があることです。さて、これは簡単なことであることがよくありますが、それは余分なステップです。ユーザーがリストに追加できるようにすることは非常に困難です(厳密には不可能ではありませんが)。また、一度入力したデータを編集するのはさらに面倒です。

于 2011-07-31T22:16:43.590 に答える
1

アクションのIDだけを保存することをお勧めします。可能なすべてのアクションを保存する「アクション」テーブルを作成することもできます。

このようにして、ディスクスペースを確保し、ソリューションをより柔軟にします。

アクションが実行された後、アクションをログに記録する必要があります。このようにして、アクションが成功したかどうかを検証できます。

質問は非常に一般的であるため、より具体的な答えを提供することは困難です。他のことを手伝う必要がある場合は、より多くの情報を提供してください。

于 2011-07-31T22:17:05.880 に答える
0

場合によります

  • 何百万もの行がありますか?
  • ディスク容量は気になりますか?
  • ユーザーはそのログを見る機会がありますか?

それらの依存関係を見て、それについて考える必要があります。

于 2011-07-31T22:04:06.517 に答える