I have to make the decision whether to add a new column (VARCHAR) to an existing table or to create a new table.
If a added a new column there would be empty entries, so I wonder how detrimental this is when the datatype is VARCHAR.
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.
What is better?
EDIT:
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;
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;