Schema Draft - wxwang93/kikkr GitHub Wiki
users
col |
data_type |
detail |
id |
integer |
not null, primary key |
username |
string |
not null, indexed, unique |
pw_digest |
string |
not null |
sess_tok |
string |
not null, indexed, unique |
first_n |
string |
not null |
last_n |
string |
not null |
created@ |
datetime |
not null |
updated@ |
datetime |
not null |
- A User has many photos. A User has many albums. A User has many comments.
photos
col |
data_type |
detail |
title |
string |
not null |
id |
integer |
not null, primary key |
user_id |
integer |
not null, indexed, f-key |
desc. |
text |
|
created@ |
datetime |
not null |
updated@ |
datetime |
not null |
- A photo belongs to a User. A photo has many comments. A photo has many tags.
albums
col |
data_type |
detail |
id |
integer |
not null, primary key |
title |
string |
not null |
user_id |
integer |
not null, indexed, f-key |
descript |
text |
|
created@ |
datetime |
not null |
updated@ |
datetime |
not null |
- An Album belongs to a User. An Album has many Photos.
comments
col |
data_type |
detail |
id |
integer |
not null, primary key |
user_id |
integer |
not null, indexed, f-key |
photo_id |
integer |
not null, indexed, f-key |
body |
text |
not null |
created@ |
datetime |
not null |
updated@ |
datetime |
not null |
- A Comment belongs to a User. A Comment belongs to a Photo.
joins_photos_albums
col |
data_type |
detail |
album_id |
integer |
not null, f-key |
photo_id |
integer |
not null, indexed, f-key |
Associations Draft
class User
has_many :photos,
class_name: :Photo,
foreign_key: :user_id
has_many :albums,
class_name: :Album,
foreign_key: :user_id
has_many :comments,
class_name: :User,
foreign_key: :user_id
end
class Photo
belongs_to :user,
class_name: :User,
foreign_key: :user_id
belongs_to :album,
class_name: :Album,
foreign_key: :album_id
has_many :comments,
class_name: :Comment,
foreign_key: :photo_id
end
class Album
belongs_to :user,
class_name: :User,
foreign_key: :user_id
has_many :photos,
class_name: :Photo,
foreign_key: :album_id
end
class Comment
belongs_to :user,
class_name: :User,
foreign_key: :user_id
belongs_to :photo,
class_name: :Photo,
foreign_key: :photo_id
end