Etsy-style handmade marketplace database schema

How a handmade marketplace models its data: shops and sections, made-to-order listings with variations and personalisation, cross-shop carts, orders split per shop, shipping profiles and photo reviews.

Etsy Handmade ER diagram

Etsy-style handmade marketplace database schema n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 n1 users idBIGINT emailVARCHAR display_nameVARCHAR password_hashVARCHAR country_codeCHAR created_atDATETIME shops idBIGINT owner_idBIGINT nameVARCHAR taglineVARCHAR announcementTEXT currency_codeCHAR country_codeCHAR vacation_modeTINYINT statusVARCHAR opened_atDATETIME shop_sections idBIGINT shop_idBIGINT nameVARCHAR positionINTEGER listing_countINTEGER shipping_profiles idBIGINT shop_idBIGINT nameVARCHAR origin_country_co…CHAR processing_min_da…INTEGER processing_max_da…INTEGER domestic_cost_min…INTEGER international_cos…INTEGER free_over_minorINTEGER listings idBIGINT shop_idBIGINT section_idBIGINT shipping_profile_…BIGINT titleVARCHAR descriptionMEDIUMTEXT base_price_minorINTEGER quantityINTEGER made_to_orderTINYINT is_personalizableTINYINT personalization_p…VARCHAR personalization_r…TINYINT personalization_m…INTEGER stateVARCHAR favorite_countINTEGER created_atDATETIME listing_variations idBIGINT listing_idBIGINT option_nameVARCHAR option_valueVARCHAR price_delta_minorINTEGER quantityINTEGER positionINTEGER is_availableTINYINT favorites user_idBIGINT listing_idBIGINT created_atDATETIME cart_items idBIGINT user_idBIGINT shop_idBIGINT listing_idBIGINT variation_idBIGINT quantityINTEGER personalization_t…VARCHAR added_atDATETIME orders idBIGINT buyer_idBIGINT order_numberVARCHAR currency_codeCHAR items_total_minorINTEGER shipping_total_mi…INTEGER tax_total_minorINTEGER grand_total_minorINTEGER shipping_addressJSON payment_referenceVARCHAR placed_atDATETIME shop_orders idBIGINT order_idBIGINT shop_idBIGINT receipt_numberVARCHAR statusVARCHAR items_total_minorINTEGER shipping_minorINTEGER commission_minorINTEGER dispatch_byDATE carrierVARCHAR tracking_numberVARCHAR shipped_atDATETIME shop_order_items idBIGINT shop_order_idBIGINT listing_idBIGINT titleVARCHAR variation_summaryVARCHAR personalization_t…VARCHAR quantityINTEGER unit_price_minorINTEGER total_minorINTEGER reviews idBIGINT shop_order_item_idBIGINT shop_idBIGINT buyer_idBIGINT ratingTINYINT bodyTEXT maker_replyTEXT statusVARCHAR created_atDATETIME review_photos idBIGINT review_idBIGINT image_urlVARCHAR positionINTEGER widthINTEGER heightINTEGER uploaded_atDATETIME

Related database schemas