私は小さなチームと一緒に、フィクションの世界構築に関する小さなプロジェクトに取り組んできました。私は、魔法の岩を湖に投げ込むなど、さまざまな方法でトリガーできるエンティティ (岩/場所/アイテム) のトリガー/連鎖動作を管理するタスクを割り当てられており、モンスター X が表示され、物事をトリガーし続けます。最後まで連鎖する。
私はこれを試しました
$Trigger_123 = new stdClass();
$Trigger_123->name = "Name";
$Trigger_123->renderOn = ? // (object_345->throwedInLakeX) ?
これを MySQL に保存するにはどうすればよいですか? チェーンパーツかどうか確認してもらえますか?また、MySQL トリガーも試しましたが、これらのトリガーで PHP を実行する方法が見つかりません。たとえば、更新または削除時に PHP コードを実行します。
cron ジョブはオプションではありませんでした。これは、将来多くのものが追加され、cron ジョブが完了するまでに多くの時間がかかるためです。より PHP ベースのソリューションを見つけたいと思っていました。
編集済み(いくつかの追加情報を追加)
これをさまざまな方法で実装しようとしました。最終的に、debian パッケージによく似た依存関係のシステムになりましたが、これには適していないと思います。
データベース構造
Table "object"
--------------
ID (int)
Name (varchar)
Table "triggers"
----------------
ID (int)
Name (varchar)
Data (blob) // usually, I store php code and use eval to run
Table "attributes"
------------------
ID (int)
attribute (varchar)
value (blob)
Table "object_has_triggers"
---------------------------
ID (int)
ObjectID (int)
TriggerID (int)
Table "object_has_attributes"
-----------------------------
ID (int)
ObjectID (int)
AttributeID (int)
結果として私が望むのは、PHPコードスニペットを毎回実行することです
- データベース トランザクションが、データベースに送信される前と送信された後
- X トリガーがアタッチされているオブジェクト、それらを解決する
- X によってトリガーされる各トリガーは、それに対するすべての依存関係が満たされているかどうかをチェックします
質問: このようなものを PHP で構築することは可能ですか? それとも、Python などの他のスクリプト言語を試す必要がありますか?