diff --git a/diet.py b/diet.py
index e4b2b7641312fa795753e8f6ed1d174deb2f4e2c..2f9ca48bd776e4dc2d990ccc6f4c86d791712f1a 100644
--- a/diet.py
+++ b/diet.py
@@ -6,6 +6,40 @@ from sqlalchemy.orm import sessionmaker, relationship
 Persisted = declarative_base()  # pylint: disable=invalid-name
 
 
+class User(Persisted):
+    __tablename__ = 'users'
+    user_id = Column(Integer, primary_key=True)
+    name = Column(String(256), nullable=False)
+    meals = relationship('Meal', uselist=True, back_populates='user')
+
+
+class Meal(Persisted):
+    __tablename__ = 'meals'
+    meal_id = Column(Integer, primary_key=True)
+    user_id = Column(Integer, ForeignKey('users.user_id', ondelete='CASCADE'), nullable=False)
+    timestamp = Column(DateTime, nullable=False)
+    user = relationship('User', back_populates='meals')
+    meal_food_types = relationship('MealFoodType', uselist=True, back_populates='meal')
+    food_types = relationship('FoodType', uselist=True, secondary='meal_food_types', back_populates='meals')
+
+
+class FoodType(Persisted):
+    __tablename__ = 'food_types'
+    food_type_id = Column(Integer, primary_key=True)
+    name = Column(String(256), nullable=False)
+    meal_food_types = relationship('MealFoodType', uselist=True, back_populates='food_type')
+    meals = relationship('Meal', uselist=True, secondary='meal_food_types', back_populates='food_types')
+
+
+class MealFoodType(Persisted):
+    __tablename__ = 'meal_food_types'
+    meal_id = Column(Integer, ForeignKey('meals.meal_id', ondelete='CASCADE'), primary_key=True)
+    food_type_id = Column(Integer, ForeignKey('food_types.food_type_id', ondelete='CASCADE'), primary_key=True)
+    amount = Column(Integer, nullable=False)
+    meal = relationship('Meal', back_populates='meal_food_types')
+    food_type = relationship('FoodType', back_populates='meal_food_types')
+
+
 class DietDatabase(object):
     @staticmethod
     def construct_mysql_url(authority, port, database, username, password):
diff --git a/diet_installer.py b/diet_installer.py
index 10f9abcdb1d1fce8ec4f21970d746828d21a9e44..8a86890325abc849b596c1f51f18365ff025fa07 100644
--- a/diet_installer.py
+++ b/diet_installer.py
@@ -4,17 +4,21 @@ from sqlalchemy.exc import SQLAlchemyError
 
 from datetime import datetime
 
-from diet import DietDatabase
+from diet import DietDatabase, User, FoodType, Meal, MealFoodType
 
 
 def add_starter_data(session):
-    pass
+    ada = User(name='Ada')
+    pancakes = FoodType(name='Pancakes')
+    meal = Meal(user=ada, meal_food_types=[MealFoodType(food_type=pancakes, amount=3)], timestamp=datetime.now())
+    session.add(meal)
 
 
 def main():
     try:
         url = DietDatabase.construct_mysql_url('localhost', 3306, 'diet', 'root', 'cse')
         diner_database = DietDatabase(url)
+
         diner_database.ensure_tables_exist()
         print('Tables created.')
         session = diner_database.create_session()