このような状況で非常によく使用される概念は、usersテーブルとpostテーブルを用意し、それらを一意の識別子でリンクすることです。この識別子は、一意である限り、シリアル化されたID、ユーザー名、メールアドレスなど、何でもかまいません。リンクは、外部キー制約を使用して行われます。これがMySQLでどのように達成されるかは正確にはわかりませんが、Postgresでは次のように実行されます。
CREATE TABLE users (
id serial PRIMARY KEY,
name text
);
CREATE TABLE posts (
content text,
user_id integer REFERENCES users(id) NOT NULL
);
次に、結合を使用してテーブルがマージされます。これはいくつかの方法で行うことができますが、いくつかの値を挿入した後のクロス結合を次に示します。
@> INSERT INTO users (name) VALUES ('James');
@> INSERT INTO users (name) VALUES ('Jones');
@> INSERT INTO posts (content, user_id) VALUES ('Hello from James.', 1);
@> INSERT INTO posts (content, user_id) VALUES ('Greetings from Jones.', 2);
@> SELECT U.id AS user_id, U.name, P.content \
FROM users U, posts P \
WHERE U.id = P.user_id;
user_id | name | content
---------+-------+-----------------------
1 | James | Hello from James.
2 | Jones | Greetings from Jones.
MySQLのYMMVですが、上記の構造はすぐに機能すると思います。
(編集:明確化のためにINSERTを追加)