Velmi často používaným konceptem v situaci, jako je tato, je mít tabulku uživatelů a tabulku příspěvků a spojovat je dohromady pomocí jedinečného identifikátoru. Tímto identifikátorem může být cokoliv – serializované id, uživatelské jméno, e-mailová adresa atd. – pokud je jedinečný. Propojení se provádí pomocí omezení cizího klíče. Nevím, jak přesně je toho dosaženo v MySQL, ale v Postgresu se to dělá takto:
CREATE TABLE users (
id serial PRIMARY KEY,
name text
);
CREATE TABLE posts (
content text,
user_id integer REFERENCES users(id) NOT NULL
);
Tabulky jsou poté sloučeny pomocí spojení. To lze provést několika způsoby, ale zde je křížové spojení po vložení některých hodnot:
@> 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.
YMMV v MySQL, ale myslím, že výše uvedené konstrukce budou fungovat přímo.
(edit:Přidány INSERTy pro upřesnění)