 <p>You're on the right track, but mind that there is a column limit. </p> <ol> <li>In your <code>MEANING</code> table, the <code>key</code> would be a foreign key to the <code>WORD.key</code> value - this allows you to relate to the values in the <code>WORD</code> table without needing them duplicated in the <code>MEANING</code> table.</li> <li>If you make it so <code>MEANING.key</code> is not unique, you can support infinite <code>MEANING.meaning</code> values</li> </ol> <p>Example</p> <h2>WORD</h2> <ul> <li>key (primary key)</li> <li>wordname</li> <li>language</li> <li>POS</li> </ul> <p>Example:</p> <pre><code>key wordname language POS ---------------------------------- 1 'foobar' 'English' idk </code></pre> <h2>MEANING</h2> <ul> <li>key</li> <li>meaning</li> <li>unique constraint on both columns to stop duplicates</li> </ul> <p>Example:</p> <pre><code>key meaning ---------------- 1 'a' 1 'b' </code></pre> <p>If you want order of the meaning values, you'll have to define a column to indicate the order somehow - IE: <code>meaning_id</code></p>