{
  "format": "dataset-manifest/1",
  "slug": "dining-experience-insights",
  "version": 1,
  "seed": "dining-experience-insights:1",
  "spec": {
    "format": "dataset/1",
    "slug": "dining-experience-insights",
    "name": "Dining Experience Insights",
    "tagline": "Customer interactions, reservations, payments, seating arrangements, and reviews from various restaurants.",
    "description": "Restaurants create memorable dining experiences by expertly managing customer reservations and interactions. Each evening, staff prepare to welcome guests, ensuring that every table is set and ready for a delightful meal. The process begins with customers making reservations, which can be influenced by group sizes, peak dining hours, and even personal preferences for seating arrangements. Once seated, patrons enjoy their meals, leading to payment transactions that reflect their choices and experiences. After their meals, guests often leave reviews, providing valuable feedback to the restaurant about their dining experience.\n\nThe data is structured across several tables, each intricately linked to paint a complete picture of restaurant operations. The 'customers' table captures individual patrons, detailing their unique preferences and history with the restaurant. The 'reservations' table logs each booking, including times, dates, and the number of guests, which can be joined with the 'customers' table to analyze who is dining where and when. The 'seating_arrangements' table offers insight into how different setups impact customer experience and satisfaction, while the 'payments' table records the financial transactions associated with each meal, linking back to both 'reservations' and 'customers'. Additionally, the 'reviews' table provides qualitative data on customer satisfaction, allowing for connections between customer demographics and their feedback.\n\nThis dataset answers critical questions such as which times are the busiest for reservations, how group sizes impact payment trends, and the relationship between seating arrangements and customer reviews. It is particularly useful for exploring customer behavior patterns, optimizing reservations, and enhancing overall dining experiences. With synthetic data designed to mirror real-world scenarios, developers can practice querying and analyzing restaurant operations effectively, gaining insights that could lead to improved management and customer satisfaction.",
    "domain": "restaurants",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "dining",
      "reservations",
      "payments",
      "reviews",
      "customers",
      "seating",
      "restaurant",
      "group dining"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "customers": {
        "description": "This table contains customer information, such as names and contact details. Each row represents a unique customer.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each customer."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the customer."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the customer.",
            "nullable": true
          },
          "phone": {
            "kind": "phone",
            "description": "Phone number of the customer.",
            "nullable": true
          }
        }
      },
      "reservations": {
        "description": "Links customers to their dining reservations, noting the time and date of each reservation.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each reservation."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Reference to the customer making the reservation."
          },
          "reservation_date": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The date and time of the reservation.",
            "dayProfile": "business"
          },
          "group_size": {
            "kind": "int",
            "min": 1,
            "max": 12,
            "description": "Number of people in the reservation.",
            "nullable": true
          }
        }
      },
      "payments": {
        "description": "Records payment details for each reservation, linking to the reservations table.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each payment."
          },
          "reservation_id": {
            "kind": "fk",
            "ref": "reservations.id",
            "description": "Reference to the related reservation."
          },
          "payment_date": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the payment was made.",
            "nullable": true,
            "when": {
              "column": "payment_method",
              "in": [
                "credit_card",
                "cash",
                "mobile_payment"
              ]
            },
            "dayProfile": "waking"
          },
          "amount": {
            "kind": "decimal",
            "min": 10,
            "max": 500,
            "scale": 2,
            "description": "Total amount of the payment.",
            "nullable": true
          },
          "payment_method": {
            "kind": "enum",
            "values": [
              "credit_card",
              "cash",
              "mobile_payment"
            ],
            "description": "The method used for payment."
          }
        }
      },
      "seating_arrangements": {
        "description": "Details the seating arrangement for each reservation, including the time and table assigned.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each seating arrangement."
          },
          "reservation_id": {
            "kind": "fk",
            "ref": "reservations.id",
            "description": "Reference to the related reservation."
          },
          "seating_time": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The time the customer is seated.",
            "dayProfile": "business"
          },
          "table_number": {
            "kind": "int",
            "min": 1,
            "max": 50,
            "description": "The table number assigned for the reservation.",
            "nullable": true
          }
        }
      },
      "reviews": {
        "description": "Captures customer feedback on their dining experience, linked to reservations.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each review."
          },
          "reservation_id": {
            "kind": "fk",
            "ref": "reservations.id",
            "description": "Reference to the related reservation."
          },
          "review_date": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The date when the review was submitted.",
            "dayProfile": "waking",
            "trend": "seasonal"
          },
          "rating": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "description": "Customer rating of their experience.",
            "nullable": true
          },
          "comments": {
            "kind": "words",
            "min": 10,
            "max": 200,
            "description": "Customer comments about their experience.",
            "nullable": true
          }
        }
      },
      "restaurants": {
        "description": "Contains information about different restaurants where reservations can be made.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each restaurant."
          },
          "name": {
            "kind": "company",
            "description": "Name of the restaurant."
          },
          "location": {
            "kind": "city",
            "description": "City where the restaurant is located.",
            "nullable": true,
            "when": {
              "column": "cuisine_type",
              "in": [
                "Italian",
                "Chinese",
                "Mexican",
                "American",
                "French"
              ]
            }
          },
          "cuisine_type": {
            "kind": "enum",
            "values": [
              "Italian",
              "Chinese",
              "Mexican",
              "American",
              "French"
            ],
            "description": "Type of cuisine offered by the restaurant."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "monetary"
    ],
    "analysisQuestions": [
      "What are the peak times for reservations?",
      "How do group sizes affect payment amounts?",
      "What is the average rating of restaurants by cuisine type?",
      "Are there trends in payment methods among different customer groups?",
      "What percentage of customers leave reviews after dining?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Reservations and Customers",
        "sql": "SELECT r.id, c.full_name FROM reservations r JOIN customers c ON r.customer_id = c.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Reservations by Group Size",
        "sql": "SELECT group_size, COUNT(*) FROM reservations GROUP BY group_size;",
        "dialect": "postgres"
      },
      {
        "title": "Average Payment Amount by Restaurant",
        "sql": "SELECT res.name, AVG(p.amount) FROM payments p JOIN reservations r ON p.reservation_id = r.id JOIN restaurants res ON r.restaurant_id = res.id GROUP BY res.name;",
        "dialect": "postgres"
      },
      {
        "title": "Find Reviews and Ratings for Reservations",
        "sql": "SELECT r.id, rev.rating, rev.comments FROM reservations r LEFT JOIN reviews rev ON r.id = rev.reservation_id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Restaurant Managers",
        "body": "Restaurant managers can use this dataset to analyze customer preferences and peak dining times, allowing them to optimize staffing and menu offerings. By understanding group dining tendencies, they can also create targeted promotions to enhance customer satisfaction."
      },
      {
        "title": "Data Analysts",
        "body": "Data analysts can employ this dataset to identify trends in payment methods and customer reviews, providing valuable insights for future marketing campaigns. They can also assess how different cuisines are rated and make recommendations for menu improvements."
      },
      {
        "title": "Developers",
        "body": "Developers can utilize this dataset for building applications that facilitate restaurant reservations or manage customer feedback. The structured data allows for easy integration into various platforms, providing a realistic testing ground for their applications."
      },
      {
        "title": "Marketing Teams",
        "body": "Marketing teams can analyze the dataset to determine which restaurants are most popular among certain demographics. By focusing on customer reviews and payment trends, they can tailor marketing strategies to attract more diners and enhance brand loyalty."
      }
    ]
  },
  "counts": {
    "customers": 200,
    "reservations": 400,
    "payments": 400,
    "restaurants": 50,
    "reviews": 200,
    "seating_arrangements": 400
  },
  "stats": {
    "customers": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 197,
          "min": "Amir Wagner",
          "max": "Zoe Rossi"
        },
        "email": {
          "nulls": 21,
          "distinct": 178
        },
        "phone": {
          "nulls": 18,
          "distinct": 176
        }
      }
    },
    "reservations": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 175,
          "min": 2,
          "max": 200
        },
        "reservation_date": {
          "nulls": 0,
          "distinct": 400,
          "min": "2023-01-01 17:49:58",
          "max": "2023-12-31 00:41:21"
        },
        "group_size": {
          "nulls": 43,
          "distinct": 12,
          "min": 1,
          "max": 12
        }
      }
    },
    "payments": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "reservation_id": {
          "nulls": 0,
          "distinct": 254,
          "min": 2,
          "max": 400
        },
        "payment_date": {
          "nulls": 0,
          "distinct": 400,
          "min": "2023-01-01 19:39:22",
          "max": "2023-12-31 16:31:26"
        },
        "amount": {
          "nulls": 44,
          "distinct": 355,
          "min": 13.34,
          "max": 496.47
        },
        "payment_method": {
          "nulls": 0,
          "distinct": 3,
          "min": "cash",
          "max": "mobile_payment"
        }
      }
    },
    "seating_arrangements": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "reservation_id": {
          "nulls": 0,
          "distinct": 259,
          "min": 1,
          "max": 399
        },
        "seating_time": {
          "nulls": 0,
          "distinct": 400,
          "min": "2023-01-01 15:31:55",
          "max": "2023-12-31 21:27:20"
        },
        "table_number": {
          "nulls": 39,
          "distinct": 50,
          "min": 1,
          "max": 50
        }
      }
    },
    "reviews": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "reservation_id": {
          "nulls": 0,
          "distinct": 163,
          "min": 12,
          "max": 399
        },
        "review_date": {
          "nulls": 0,
          "distinct": 200,
          "min": "2023-01-03 14:12:33",
          "max": "2023-12-30 14:18:37"
        },
        "rating": {
          "nulls": 22,
          "distinct": 5,
          "min": 1,
          "max": 5
        },
        "comments": {
          "nulls": 23,
          "distinct": 177
        }
      }
    },
    "restaurants": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "name": {
          "nulls": 0,
          "distinct": 48,
          "min": "Acme Holdings",
          "max": "Willow Studio"
        },
        "location": {
          "nulls": 0,
          "distinct": 32,
          "min": "Ankara",
          "max": "Vancouver"
        },
        "cuisine_type": {
          "nulls": 0,
          "distinct": 5,
          "min": "American",
          "max": "Mexican"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/customers.csv",
      "format": "csv",
      "table": "customers",
      "key": "datasets/dining-experience-insights/v1/csv/customers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/csv/customers.csv",
      "bytes": 10561,
      "sha256": "2cc84db5879bbecdeb41c29198aa2cb4603731ca4182e119731ca22d7e698b3a",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reservations.csv",
      "format": "csv",
      "table": "reservations",
      "key": "datasets/dining-experience-insights/v1/csv/reservations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/csv/reservations.csv",
      "bytes": 12154,
      "sha256": "89a67a596ac97f2302ba80902fc4caa2f872bb3948f2932e509e3ce0708eb3e8",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/payments.csv",
      "format": "csv",
      "table": "payments",
      "key": "datasets/dining-experience-insights/v1/csv/payments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/csv/payments.csv",
      "bytes": 18108,
      "sha256": "f37024753bd5cb003e9fad9afdfaeecc0caba65cdbe9c1c20d659427199ee037",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/restaurants.csv",
      "format": "csv",
      "table": "restaurants",
      "key": "datasets/dining-experience-insights/v1/csv/restaurants.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/csv/restaurants.csv",
      "bytes": 1761,
      "sha256": "cc6603375f6f9ad7e8623392bfe34c4877c1c9b6d81fb913e49a04208eb764ac",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reviews.csv",
      "format": "csv",
      "table": "reviews",
      "key": "datasets/dining-experience-insights/v1/csv/reviews.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/csv/reviews.csv",
      "bytes": 133942,
      "sha256": "db7170b3489423abacc6021d80ac7fbcc15bac86dc74250b6dad6e5cdf38fbfc",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/seating_arrangements.csv",
      "format": "csv",
      "table": "seating_arrangements",
      "key": "datasets/dining-experience-insights/v1/csv/seating_arrangements.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/csv/seating_arrangements.csv",
      "bytes": 12480,
      "sha256": "b7f4c1118494d8e8abf3de499fdfb5c69e590d20fae0b9a5f85179fa3ffcba09",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "dining-experience-insights.json",
      "format": "json",
      "table": null,
      "key": "datasets/dining-experience-insights/v1/dining-experience-insights.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/dining-experience-insights.json",
      "bytes": 356929,
      "sha256": "2baaad4d84e0082c0ec322cfd7b2ae66c7925326974d07d517a8dae3cc40a435",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/dining-experience-insights/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/sql/postgres.sql",
      "bytes": 213944,
      "sha256": "40485bfd89b460cab423f69f4d11ec74ecd3e49537fe33a0dac7eb39f466a3f4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/dining-experience-insights/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/sql/mysql.sql",
      "bytes": 213235,
      "sha256": "7f382dd3ad7862f7e6adb389ebb4b8defde3a25e8e76ea5d4ab498b47f010376",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/dining-experience-insights/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/sql/mssql.sql",
      "bytes": 216339,
      "sha256": "b9ad94aa4ad70fc626a8ef9d0a641d237801f692cdec927eba580eb2207f70a4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/dining-experience-insights/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/sql/sqlite.sql",
      "bytes": 212981,
      "sha256": "eef16c0640069450c3fc965ce8526424d5ef89f4c28eebd19f6692facb6ba0ce",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/dining-experience-insights/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/prisma/seed.ts",
      "bytes": 323071,
      "sha256": "1935128ed935bb22bed31d834ea37718a70acb831b892195f5836b323ef229ce",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/dining-experience-insights/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/dining-experience-insights/v1/django/fixtures.json",
      "bytes": 433490,
      "sha256": "70ef08eb441f13c3b7bc47732a124fbc8919027cf54d36339f176c75a3ab568e",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768351730,
  "updatedAt": 1788768351730
}
