\documentclass[12pt]{standalone} \usepackage{tikz} \tikzset{ dot/.pic = {\fill circle (2pt);} } \tikzset{table header/.style = {draw=none}} \begin{document} \begin{tikzpicture} \matrix[ row sep = 2mm, column sep = 1mm, column 1/.style = {every node/.style={draw},minimum width=20mm,minimum height=8mm}, column 4/.style = {every node/.style={draw},minimum width=15mm,minimum height=8mm}] { \node [table header] {key}; & &[1cm,between origins] & \node [table header] {value}; \\ \node {apple}; & \node (A) {} pic {dot}; & \node (1) {} pic {dot}; & \node {1}; \\ \node {banana}; & \node (B) {} pic {dot}; & \node (2) {} pic {dot}; & \node {2}; \\ \node {cherry}; & \node (C) {} pic {dot}; & \node (3) {} pic {dot}; & \node {3}; \\ }; \draw[->] (A) -- (3); \draw[->] (B) -- (1); \draw[->] (C) -- (2); \end{tikzpicture} \end{document}