3

オンラインでかなりの量を検索した後、まさに探していたものや、ユーザーと一緒に Web アプリケーションを作成する方法を概説したものを見つけることができませんでした。私が見つけた最も近いものは、このstackoverflowの投稿で、SQLサーバーでユーザー/ロールを使用してWebアプリケーションを作成する方法を概説しています。

また、この投稿からいくつかの代替案を見つけました。

  • シンプルなリレーショナル データベースを作成する
  • 「メタテーブル」を作る

CellarTrackerに似たワイン管理ツールである CodeIgniter で Web アプリケーションを作成しています。各ユーザーには、CRUD 操作を実行できる独自の「セラー」またはワインのコレクションがあります。これを作る従来の方法は何でしょうか。データベースはどのように構築すればよいですか? ユーザー管理、役割、権限などを簡単にする CI ライブラリはありますか? (TankAuth が最高の認証ライブラリのように思えることは既にわかっています)。

データベース (の一部) を構成する方法は次のとおりです。

**users_table**
id
email
password

**wines_table**
id
user_id

私の計画は、ワインの各ボトルにユーザーの ID を関連付けることです。ただし、これが多くのユーザーがいる CRUD Web アプリケーションを処理する最も安全で効率的な方法であるとは思えません。

CRUD 操作の経験はありますが、それらをユーザー管理システムに接続する方法がわかりません。

4

1 に答える 1

2

ユーザーに関連付けられていないワイン専用の完全に別のテーブルを用意することを検討してください。

このテーブルにはワインの親子がいます。親には、ワイナリー、ワインの名前、場所などのフィールドが含まれます。子は、ヴィンテージの特定の年になります。

ユーザーは自分のトラッカーにワインの名前を入力します。システムが検索し、見つからない場合はユーザーがレコードを作成します。システムは親レコードと別の子レコードをその年で作成します。

ワインが見つかった場合、ユーザーは親レコードを更新し、年を選択するか、新しい年を入力できます。

次に、システムは別のテーブル users_wines に親の ID (ワイン) と子の ID (特定の年) を持つレコードを追加します。

これにより、ユーザーのグループがワインリストを共有するなど、さまざまな可能性が開かれます。

また、ユーザーとワイン ボトルの関係を簡単に変更することもできます。ユーザーは users_wines のステータスを変更できます - セラーにあるワイン、ワインを飲む、空のワインボトル - これはワイン自体の記録には影響しません。

==== 編集 - ええ、wine.com api について言及することは良い情報でした。それははるかに大きな問題になります。ユーザーができることを最初に定義することをお勧めします。私の最初の質問は、wine.com から戻ってきた名前をユーザーが気に入らない場合はどうすればよいかということです。APIに実際の間違いがある場合はどうなりますか?APIから戻ってきた間違ったワイン名をカスタマーサービスに送ろうとしていますか?

または - ユーザーはリスト内のワインの名前を変更できますか? できれば、wine.com とのデータ関係は大きく変わるでしょう。

個人的には、ワインリストを作成しようとするのは面倒だと思いますが、名前を編集することはできません. ユーザーからあまりにも多くのコントロールを削除しているようです。

ただし、これが説明責任を必要とするレストラン向けのアプリである場合、ワイン名を変更できないようにすることは機能と見なすことができます.

そのため、ユーザーの役割とユーザー ストーリーに時間を割いてください。次に、データの関係を知らせます。

于 2013-08-08T22:42:08.650 に答える