1

ポーリング アプリのデータベース構造

こんにちは、この Mysql テーブル構造を crateData テーブルに変換したいだけです。

以下は、このポーリング アプリに関連付けられているテーブルのリストです。

  1. ユーザー (ユーザーの詳細)
  2. 投票 (投票の詳細)
  3. 評価 (投票の評価)
  4. PollComment (コメントはユーザーによる投票に属します)
  5. FavouritePoll (ユーザーによるお気に入り投票のリスト)
  6. user_follow (フォローする必要があるユーザー)
  7. カテゴリ(投票が属するカテゴリ)

ありがとう

4

1 に答える 1

0

スキーマに関する詳細な回答をありがとう@Bernd Dorn:

@Bernd Dorn: クレートだけでなく、一般的なパフォーマンス上の理由から、少し異なることを行う必要があります。そのため、スキーマを変換する方法に関する一般的な答えはありません。ここでいくつか指摘します。

一般に、画像などのバイナリ オブジェクト用に blob テーブルを作成し ( https://crate.io/docs/stable/blob.html#creating-a-table-for-blobを参照)、ダイジェスト経由でそれらを参照する必要があります。文字列型です。

データ型 ( https://crate.io/docs/stable/sql/ddl.html#data-typesを参照) : varchar* の場合、日時に文字列を使用し、タイムスタンプを使用します

提案された構造変更:

可能であれば、poll_id をルーティング値として使用してください。

一般に、 accessor としてのみ存在する主キーを避けるようにしてください。現在、crate は自動キー生成をサポートしていません。そのため、クライアントはそれらの ID を提供する必要があります。状態を共有しないと増分値を持つことができないため、一意の整数値を生成するのは困難です。ID の列タイプとして uuid 関数と文字列を使用できます (たとえば、ポーリング タイプは話す識別子にすることができます)。

評価については、一意の値からプライマリを構築することをお勧めします。また、次のように、評価の上下に 1 つの列を使用します。

(poll_id) でクラスター化されたテーブル評価 (poll_id int 主キー、user_id int 主キー、評価バイト) を作成します。

favoritepoll は、投票を参照するタイプ array(int) のユーザーの列である可能性があります。または、1 つの参照のみが可能な場合は単に int である可能性があります。

現在、結合はクライアント側で行う必要があり、1:1 および n:1 の関係では簡単です。他のタイプの結合は、データに対して実行されるクエリに依存する非正規化によって回避できます。

于 2014-05-28T12:12:11.497 に答える