title: What is better in performance for 1-to-1 relationship: a new table or a VARCHAR column with a lot of empty entries
body: <p>I have to make the decision whether to add a new column (VARCHAR) to an existing table or to create a new table.</p>
  
  <p>If a added a new column there would be empty entries, so I wonder how detrimental this is when the datatype is VARCHAR.</p>
  
  <p>So concretely I have a "messages" table in which I store messages from userA to userB. Every user should have the chance to respond to a given message exactly 1 time so I could add a "response" column with VARCHAR to the existing messages table or I could create a new table "responses" with "index_message" and "response" as columns.</p>
  
  <p>What is better?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <pre>CREATE TABLE `messages` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `sender` int(10) unsigned NOT NULL,
    `receiver` int(10) unsigned NOT NULL,
    `message` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
    `ref` varchar(180) COLLATE utf8_unicode_ci DEFAULT NULL,
    `status` tinyint(4) NOT NULL DEFAULT '0',
    `type` tinyint(4) NOT NULL,
    `multiple` tinyint(4) NOT NULL DEFAULT '0',
    `timestamp` int(11) NOT NULL,
    PRIMARY KEY (`id`)
  ) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  </pre>
  
  <pre>CREATE TABLE `responses` (
    `msg_id` int(10) unsigned NOT NULL,
    `response` varchar(140) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`msg_id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  
  </pre>