У меня есть таблица с двумя дочерними таблицами. Для каждой записи в родительской таблице мне нужна одна и только одна запись в одной из дочерних таблиц - ни одна в каждой, ни одна. Как мне это определить?
Вот предыстория. Не стесняйтесь критиковать эту реализацию, но, пожалуйста, ответьте на вопрос выше, потому что это не единственный раз, когда я сталкивался с этим:
У меня есть база данных, которая содержит данные, относящиеся к опросам пользователей. Первоначально он был разработан с одним методом аутентификации для начала опроса. С тех пор требования изменились, и теперь есть два способа подписать кого-либо, чтобы начать опрос.
Первоначально я записал токен аутентификации в столбец таблицы опроса. Поскольку требования изменились, есть три других бита данных, которые я хочу захватить при аутентификации. Поэтому для каждой записи в таблице опроса у меня будет либо один токен, либо набор из трех. Все четыре из них относятся к разным типам, поэтому я подумал, что вместо четырех столбцов, где либо один будет нулевым, либо три - нулевым (или, что еще хуже, плохим коллажем любого из этих сценариев), У меня было бы две дочерние таблицы, одна для хранения одного токена аутентификации, другая для хранения трех. Проблема в том, что я не знаю, как это определить в DDL.
Я использую MySQL, так что, возможно, есть функция, которую MySQL не реализует, которая позволяет мне это делать.