-2

エンティティごとに、さまざまなことに関する毎日の情報を保存するためにカレンダーを広く使用するアプリケーションを作成しています。エンティティごとに新しいカレンダーを作成するにはどうすればよいですか。ユーザー テーブルのエントリごとにテーブルを作成する必要がありますか?

編集:

私はエンティティユーザーを持っています。現在、各エンティティには、1 年間のカレンダーがあります。年の各日について、いくつかのデータを持つ 2 つのフィールドがあります。

今、私はそれをどのように作るのですか?ユーザーごとに新しいテーブルを作成する必要がありますか? または、ユーザーの外部キーを使用して、各ユーザーのカレンダー テーブルに 365 個のエントリを作成する必要があります。

編集:

各ユーザーは、1 日に 1 つのイベントのみを持ちます。また、イベントはユーザーの一部のアイテムで発生し、ユーザーには多くのアイテムがあるため、1 人のユーザーが複数のカレンダーを持つことができます。

4

2 に答える 2

1

ユーザー用のテーブルが 1 つと、カレンダー用のテーブルが 1 つあります。これは私が始めるものです:

class User < ActiveRecord::Base
  has_one :calendar
end

class Calendar < ActiveRecord::Base
  belongs_to :user
  has_many :calendar_events
end

class CalendarEvent < ActiveRecord::Base
 belongs_to :calendar
end

次に、次のことができます。

User.calendar.calendar_events #returns array of active record CalendarEvent objects
User.calendar.calendar_events.where(:start_date => Date.today) #assuming you have a start date field

これらのモデルは、カレンダーのように見えるグリッドでイベントをレンダリングする場合にのみ、正真正銘のカレンダーになります。

于 2013-02-07T17:42:22.007 に答える
1

編集

tester123 はあなたの質問に適切に答えていると思います。

class User < ActiveRecord::Base
  has_one :calendar
  has_many :calendar_events, :through => :calendar
end

class Calendar < ActiveRecord::Base
  belongs_to :user
  has_many :calendar_events
end

class CalendarEvent < ActiveRecord::Base
  belongs_to :calendar
end

この場合、テーブルがusersあり、各ユーザーはテーブルに独自のカレンダー エントリを持っていますcalendars。ユーザーは 0 個以上を持つこともできますcalendar_events。カレンダーイベントには、列event_date(​​あなたが話している年の日付) と「いくつかのデータ」を持つ 2 つのフィールドがあります。

于 2013-02-07T17:33:02.960 に答える