A few observations about the nature of the data we are going to store:
- We need to store billions of records
- Each object we are going to store is small (less than 1K)
- There are no relationships between records, except if we want to store which user created what URL
- Our service is read-heavy
We would need two tables, one to store the URL and one to store the count of the link.
The following represents the URL table:
_id |
long_url |
clicked |
created_date |
The following represents the Counter table:
_id |
Seq |