  Caching prefetches some library content at users' memories during the
off-peak times (i.e., {\it placement phase}), such that the number of
transmissions during the peak-traffic times (i.e., {\it delivery phase}) are
reduced. A coded caching strategy was originally proposed by Maddah-Ali and
Niesen (MN) leading to a multicasting gain compared to the conventional uncoded
caching, where each message in the delivery phase is useful to multiple users
simultaneously. However, the MN coded caching scheme suffers from the high
subpacketization which makes it impractical. In order to reduce the
subpacketization while retain the multicast opportunities in the delivery
phase, Yan et al. proposed a combinatorial structure called placement delivery
array (PDA) to design coded caching schemes. In this paper, we propose two
novel frameworks for constructing PDA via Cartesian product, which constructs a
PDA for $mK_1$ users by the $m$-fold Cartesian product of a PDA for $K_1$
users. By applying the proposed frameworks to some existing PDAs, three novel
caching schemes are obtained which can significantly reduce the
subpacketization of the MN scheme while slightly increasing the needed number
of transmissions. For instance, for the third scheme which works for any number
of users and any memory regime, while reducing the coded caching gain by one,
the needed subpacketization is at most
$O\left(\sqrt{\frac{K}{q}}2^{-\frac{K}{q}}\right)$ of that of the MN scheme,
where $K$ is the number of users, $0<z/q<1$ is the memory ratio of each user,
and $q,z$ are coprime.
