|
Design
An overview of the system design.
IntroductionThe system design will be guided by the requirements and assumptions that have been documented to date. Review both of those documents first to understand the context of the system design decisions reflected in this document. Database SchemaThe following are the key tables required to implement the application. facebook_cache
This table will be used to cache data from Facebook, retrieved via the Facebook API. As per the Facebook Developer Terms of Service, these values can only be cached for up to 24 hours. A scheduled process will expire cache entries from the facebook_cache table periodically. lists
This table will store the lists of the day. Assuming 5 years worth of lists, the table will contain 1,825 rows. submissions_(list_id)
This table schema is a template to be used for all submissions data tables. Submissions for a particular list_id will be stored in a corresponding table named submissions_(list_id), where (list_id) is the actual value itself. votes_(list_id)
This table schema is a template to be used for all votes data tables. Votes for a particular list_id's submissions will be stored in a corresponding table named votes_(list_id), where (list_id) is the actual value itself. |