2016-03-19 8 views
1

私はWeb開発の初心者です。これが基本的な質問であればお詫び申し上げます。私はRoRで行われたオークションサイトに最適な戦略を選ぶ際のアドバイスを探しています。RoRサイトの実装方法

ユーザーはオークションを作成することができます。オークションは一定期間有効です。各オークションには、対応するdbテーブルがあります。一般的な詳細(作成したユーザー、期限切れの時間)と、入札ごとに保持する別のテーブルです。 入札表は、レコードを保存するためのものです。
複数のオークションの入札ごとに複数の入札表があると、オークションが終了すると入札表のレコードをエクスポートして削除したいと考えています。

これが最善のアプローチである場合は、こちらのオークション作成時に疑い

  1. の私のポイントは、それが動的に特定のオークションのために厳密に 入札テーブルを生成するので、どの場合はすることは可能でしょうか?
  2. bidsテーブルが動的に作成されると仮定します。ユーザーが を入札すると、javascript/ajax/JSONを使用して、 の詳細を入札表に保存する投稿リクエストを作成できますか?
  3. 投稿リクエストのコードはどのように見えますか? テーブルが動的に作られていると仮定しているので、対応するモデルはありません。 コントローラ/アクション/ビューを参照できます。
  4. dbテーブルレコードをエクスポートし、 時間満了に基づいて削除することは可能ですか?

すべてのご協力をお願いいたします。

+1

私は数十億行のデータベースで作業しました。正しいインデックスでは、依然としてミリ秒以内にクエリに応答します。データベースは膨大な量のデータを処理するためのものです。販売する各アイテムの新しいテーブルを作成する必要はありません。古いデータをアーカイブに長期間エクスポートする理由はあまりありません。 – spickermann

答えて

2

私は動的に作成されたDBテーブルを見たことがありません。それは確かに一般的ではありません。

さらに一般的なことは、入札単価表を1つ作成し、入札記録ごとにauction_idを保存することです。あなたはhas_manybelongs_toを使用してオークションを入札単価のリストとリンクさせます。

オークションが終了すると、すべての入札単価がauction.bidsであることが判明し、エクスポート機能が実行されます。たとえば、あなたは、彼らが読み取り専用のファイルシステムを持っているので、あなたは、Herokuのにデプロイしている場合は、わずかにこのエクスポート機能を変更する必要があるだろう、

require 'yaml' # you could also dump as txt, json, csv, etc 
def export(auction_id) 
    Auction.find(auction_id).bids.each do |bid| 
    File.open("bids_backup", "a") do |f| 
     f.puts YAML.dump(bid.attributes) 
    end 
    bid.destroy 
    end 
end 

注意。

時間枠内で入札を選択するように尋ねられたので、私はそのトピックについてthisthis質問にリンクします。

関連する問題