Yes, that all sounds right to me. The funny thing, though, is that while you get valid database instances by composing the way you describe, they don't seem to be the "right" things to do. If you combine your answers to Puzzles 122 and 124 to get an answer to Puzzle 125, you get something like this:

\\[

\begin{array}{c|c}

\text{Germans} & \mathrm{FriendOf} \\\\

\hline

Alice_0 & Bob_1 \\\\

Bob_0 & Alice_1 \\\\

\vdots & \vdots \\\\

Stan_0 & Tyler_1 \\\\

Tyler_0 & Stan_1. \\\\

\vdots & \vdots

\end{array}

\quad

\begin{array}{c|c}

\text{Italians} & \mathrm{FriendOf}' \\\\

\hline

Alice_1 & Bob_0 \\\\

Bob_1 & Alice_0 \\\\

\vdots & \vdots \\\\

Stan_1 & Tyler_0 \\\\

Tyler_1 & Stan_0. \\\\

\vdots & \vdots

\end{array}

\\]

Which seems to duplicate every person into both a German *and* an Italian version, but make all the German versions' friends the Italian versions and vice versa. Weird!

\\[

\begin{array}{c|c}

\text{Germans} & \mathrm{FriendOf} \\\\

\hline

Alice_0 & Bob_1 \\\\

Bob_0 & Alice_1 \\\\

\vdots & \vdots \\\\

Stan_0 & Tyler_1 \\\\

Tyler_0 & Stan_1. \\\\

\vdots & \vdots

\end{array}

\quad

\begin{array}{c|c}

\text{Italians} & \mathrm{FriendOf}' \\\\

\hline

Alice_1 & Bob_0 \\\\

Bob_1 & Alice_0 \\\\

\vdots & \vdots \\\\

Stan_1 & Tyler_0 \\\\

Tyler_1 & Stan_0. \\\\

\vdots & \vdots

\end{array}

\\]

Which seems to duplicate every person into both a German *and* an Italian version, but make all the German versions' friends the Italian versions and vice versa. Weird!