code: def create_top_schema(self):
          
          self.execute("""CREATE TABLE IF NOT EXISTS top_module (
              uuid TEXT,
              add_timestamp DATETIME
          );""")
          self.execute("""CREATE TABLE IF NOT EXISTS top_category (
              pk INTEGER PRIMARY KEY,
              slug TEXT,
              description TEXT
          );""")
          self.execute("""CREATE TABLE IF NOT EXISTS top_item (
              pk INTEGER PRIMARY KEY,
              canonical_id TEXT,
              category_pk INTEGER,
              requeue_command TEXT,
              url TEXT,
              description TEXT
          );""")
          self.execute("""CREATE TABLE IF NOT EXISTS top_item_module (
              pk INTEGER PRIMARY KEY,
              item_pk INTEGER,
              module_uuid TEXT
          );""")
          self.execute("""CREATE TABLE IF NOT EXISTS top_log_entry (
              pk INTEGER,
              uid TEXT,
              namespace TEXT,
              timestamp DATETIME,
              input_json TEXT,
              output_json TEXT
          );""")
          self.execute("""CREATE TABLE IF NOT EXISTS top_module_log_entry (
              pk INTEGER PRIMARY KEY,
              log_pk INTEGER,
              module_uuid TEXT,
              log_type TEXT
          );""")
          self.commit()
docs: (Category --->) Item <---> Module <---> LogEntry
  
          <---> is a many-to-many relationship
           ---> is a foreign key relationship
  
          (- Category: represents a group of Items which form a top list)
           - Item: something that can be played multiple times and is grouped by to build a top list
           - Module: an instance of a module on the queue
           - LogEntry: an act performed on the queue and logged