Users and access (10)
Identity, addresses, sessions, follows, verifications, blocks, reports, terms acceptance, settings, subscriptions.
62 MySQL tables, 48 migrations, 10 seeds, prepared statements throughout.
Evidence for the D2 MySQL screenshots requirement. Every Me2You table is listed below, grouped by domain. The migration story explains how a new clone goes from empty to fully seeded with one shell command. The screenshot slots are ready for phpMyAdmin captures.
Identity, addresses, sessions, follows, verifications, blocks, reports, terms acceptance, settings, subscriptions.
Listings, their image and video media, comments, reactions, categories tree, vertical-specific deep fields (properties, vehicles), import staging, geocode cache.
One cart per user, line items, saved-for-later, orders and items, escrow ledger, refund requests, payment audit.
Courier roster, assignments and legs, OTPs at pickup and delivery, pickup-point shipments, earnings, payouts, tips, tracking events, GPS telemetry.
driver_pings GPS telemetry trail for delivery ETA learning.
Reviews, disputes, evidence files, audit log, cached trust scores.
user_risk_scores Cached trust and risk score per user (feed, fee and escrow perks).
Communities, members, posts, post comments, post reactions.
Counter-offers and swaps, auctions and bids, lay-bye plans and payments, wishlists, saved searches, referrals.
Direct messages, notifications, public reports.
Feature flag rollouts and event capture for A/B style toggles.
Total: 10 + 10 + 8 + 10 + 5 + 5 + 8 + 3 + 3 = 62 tables.
The repository keeps two complementary artefacts in db/:
db/schema.sql: the consolidated, idempotent re-runnable schema. A fresh clone applies this in one step.db/migrations/*.sql: 44 ordered migration files showing the historical evolution. Each is numbered, e.g. 003-messages.sql through 044-seller-vacation.sql.# From the project root mysql -u root -p < db/schema.sql # 62 tables # Optional, for demo data: for f in db/seeds/*.sql; do mysql -u root -p m2y < "$f" done
The numbered files in db/migrations/:
Demo data only. Seeds are never run in production. The seed bundle produces 38 listings spread across 27 categories, demo orders at each stage of the workflow, demo reviews, demo community posts, demo driver payouts and listing videos for the swipe feed.
? placeholders. EMULATE_PREPARES is OFF so MySQL parses the SQL once and the binds cannot be re-interpreted as SQL.password_hash() with the default algorithm and cost 12. Verified with password_verify(). No legacy MD5 or SHA1 anywhere.csrf_token() in app/config/auth.php generates a per-session token. csrf_check() verifies with hash_equals on every POST.e() which calls htmlspecialchars($s, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8').payment_log for a previously-processed pf_payment_id and returns 200 OK without re-applying.use_only_cookies on, use_strict_mode on, SameSite Lax, HttpOnly, Secure when HTTPS. Session regenerated on login.Structure views captured from phpMyAdmin, one per core domain. Each frame shows the column definitions, keys and indexes (schema only, no row data).







