इस तरह की स्थिति में अक्सर उपयोग की जाने वाली अवधारणा एक उपयोगकर्ता तालिका और एक पोस्ट तालिका होती है, जो उन्हें एक अद्वितीय पहचानकर्ता के साथ जोड़ती है। यह पहचानकर्ता कुछ भी हो सकता है - एक क्रमबद्ध आईडी, एक उपयोगकर्ता नाम, मेल पता, आदि - जब तक यह अद्वितीय है। लिंकिंग एक विदेशी कुंजी बाधा का उपयोग करके किया जाता है। वास्तव में यह 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, लेकिन मुझे लगता है कि ऊपर के निर्माण सीधे काम करेंगे।
(संपादित करें:स्पष्टीकरण के लिए जोड़ा गया INSERTs)