To transform an MILP into LP, you need to use an exponential number of variables:
Check the book: Optimization over Integers, by Bertsimas and Weismantel. Chapter 4 contains different ways to convert binary linear programming (BLP) into linear programming (LP).
The first step: $$s_n=\sum_{m=1}^{M} z_{n,m}q_{n}=q_{n}\sum_{m=1}^{M} z_{n,m}$$ bacause the summation is not over the index $n$. Thus, its constraint is $$v\leq \frac{s_n}{d_n}\implies v\leq \frac{q_n}{d_n}\sum_{m=1}^{M} z_{n,m}.$$
Second step: the problem can be converted into a binary program. I will remove its variable $v$ by fixing the order on $\dfrac{q_n}{d_n}\sum\limits_{m=1}^{M} z_{n,m} , \quad \forall n\in 1,\dots,N$.
$$\frac{q_n}{d_n}\sum_{m=1}^{M} z_{n,m} - \frac{q_{n-1}}{d_{n-1}}\sum_{m=1}^{M} z_{n-1,m} \geq 0 , \quad \forall n\in 2,\dots,N$$
After that, $v=\dfrac{q_1}{d_1}\sum\limits_{m=1}^{M} z_{1,m}$. The equivalent binary programming problem is
$$\begin{array}{ll}
\max & \frac{q_1}{d_1}\sum_{m=1}^{M} z_{1,m} \\
\text{s.t.} & \sum\limits_{n=1}^{N} z_{n,m} \leq P, \quad \forall m\in 1,\dots,M\\
& \dfrac{q_n}{d_n}\sum\limits_{m=1}^{M} z_{n,m} - \frac{q_{n-1}}{d_{n-1}}\sum\limits_{m=1}^{M} z_{n-1,m} \geq 0 , \quad \forall n\in 2,\dots,N\\
& z_{n_1, m}+z_{n_2, m} \leq 1, \quad \forall (n_1, n_2)\in 1,\dots,N, \, \forall m\in1,\dots,M\\
& z_{n,m}\in\{0,1\}, \quad \forall n\in 1,\dots,N, \, \forall m\in 1,\dots,M
\end{array}$$
OBS: Also, use the recommendation of Rob Pratt.
Final step:
Apply the same method shown in the book, where it is proved that the optimal objective value of LP1 is equal to BLP1 and the solution $w_S=1$ is $x_i=1, \forall i\in S$ and $x_i=0, \forall i\notin S$.
BLP1:
$$
\begin{array}{ll}
\max & cx\\
\text{s.t.} & Ax=b\\
& x\in\{0,1\}
\end{array}
$$
LP1:
$$
\begin{array}{ll}
\max & \sum\limits_{S\subseteq N}\left(\sum\limits_{i\in S} c_i\right)w_S\\
\text{s.t.} & (A_S -b)w_S =0,\quad \forall S\subseteq N\\
& \sum\limits_{S\subseteq N} w_S=1\\
& w_S \geq 0.
\end{array}
$$