-2

我正在编写一个应用程序,它将广泛使用日历来存储每个实体的各种事物的日常信息。现在我如何为每个实体制作一个新日历。我是否为用户表中的每个条目制作一个表?

编辑:

我有一个实体用户。现在每个实体都有一个全年的日历。对于一年中的每一天,有 2 个字段将包含一些数据。

现在我该怎么做?我应该为每个用户创建一个新表吗?或者我应该只使用用户的外键并在每个用户的日历表中拥有 365 个条目。

编辑:

每个用户每天只有一个事件。也因为事件发生在用户的某些项目上,并且用户有很多项目,所以一个用户可以有多个日历。

4

2 回答 2

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(您正在谈论的一年中的哪一天)和两个具有“一些数据”的字段。

于 2013-02-07T17:33:02.960 回答
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 回答