私はウェブサイトとデータベースの設計に関してかなりの初心者です。これまでの経験は、非常に基本的な MS Access データベースと Codeacademy の基本コースだけでした。私は、プログラミングの歯を削るために、Web ベースのゲームの作成に手を出すことにしました。データベースの設計、特に将来のイベントのアドホックなスケジューリングについて、誰かが私に洞察を与えてくれることを期待していました。
現在の計画は、単純なスペース アドベンチャー ゲームを作成することです。星は 2 次元デカルト平面上に配置されます (したがって、各星には (X,Y) 座標があります)。したがって、次の2つの基本的な表があります。
輸送する:
- プレーヤー (Varchar)
- 船(ヴァルチャー)
- CurrentXCoOrd (int)
- CurrentYCoOrd(int)
地図
- STARID (Int)
- システム名 (varchar)
- XCoOrd (整数)
- YCoOrd (整数)
プレイヤーが座標 (1,1) にある星系に船を持っていて、座標 (2,2) にある星系への旅をしたいとします。この旅に、たとえば 10 分かかるとしたら、新星系への船の到着を記録するデータベースを設定する最善の方法は何でしょうか? (船はある座標から別の座標に移動する必要はありません。単に出発地から姿を消し、目的地に現れるだけで十分です。)
データベースを更新して船が動いていることを示し、10 分後にデータベースを更新して船の到着を表示することを検討していましたが、正直なところ、そのスケジュールをどのように設定すればよいかわかりません。それを念頭に置いて、船の発進と到着を記録する代わりに、船が着陸した時間を示すタイムスタンプで到着を記録し、それから船が動いているかどうかを計算するだけでよいと考えています。
したがって、SHIP テーブルから X および Y CoOrdinate フィールドを削除し、代わりに POSITION というテーブルを作成します。
位置:
- プレーヤー (Varchar)
- ArrivalTime (日時)
- XCoOrd (整数)
- YCoOrd (int)
次に、ウェブサイトは、船が動いているかどうかを判断するために、到着タイムスタンプが経過したかどうかを確認します.
そうすれば、プレイヤーがブラウザを閉じて後で再度開いても何も中断されず、データベースを 2 回 (起動と到着を表示) ではなく 1 回 (到着を表示) だけ更新するようになりました。これがプレイヤーの動きを追跡する実行可能な手段であるかどうか、誰か確認できますか? 私は学ぶためにこれを行っているので、提供された提案を喜んで試みます。:)
データベースは MySQL で、Web サイトは Perl です。
これは私の最初の投稿です。私の質問が十分に明確でない場合は、お詫び申し上げます。アーカイブを検索しましたが、探していたものと一致するものは見つかりませんでした。
よろしくお願いします。