我有一个有两个子表的表。对于父表中的每条记录,我想要一个子表中的一个且只有一个记录——不是每个记录,也不是没有记录。我该如何定义?
这是背景故事。随意批评这个实现,但请回答上面的问题,因为这不是我遇到的唯一一次:
我有一个数据库,其中包含与用户调查有关的数据。它最初设计为使用一种身份验证方法来启动调查。从那时起,要求发生了变化,现在人们可以通过两种不同的方式登录以开始调查。
最初,我在调查表的列中捕获了身份验证令牌。由于需求发生了变化,我想在身份验证中捕获其他三个数据位。因此,对于调查表中的每条记录,我要么拥有一个令牌,要么拥有一组三个。所有这四个都是不同的类型,所以我的想法是,而不是有四个列,其中一个将是空的,或者三个将是空的(或者更糟糕的是,这些场景中的任何一个都是糟糕的混搭),我将有两个子表,一个用于保存单个身份验证令牌,另一个用于保存三个。问题是,我不知道如何在 DDL 中定义它。
我正在使用 MySQL,所以也许有一个 MySQL 没有实现的功能让我可以做到这一点。