在单个SQL列中存储未指定数量的条目



我最近为一个家庭成员制作了一个简单的数据库。该数据库存储个人及其亲密的家庭成员,其中包括兄弟姐妹。问题是,与父母不同,兄弟姐妹是可变的,一个人可能有1个或12个。

我的SQL表的简化版本如下:

|姓名|年龄|父母|兄弟姐妹||||||||||

当前同级被压缩为单个字符串,并用分隔符存储在同级列中。

示例:";john%doe%15& liam%doe%17& james%doe%23";

实际的字符串有20多个字段,这使得打包和拆包字符串变得混乱。它还使添加新字段变得困难,因为更改数据的存储顺序会导致数据加载错误。我环顾四周,注意到许多数据库都必须面临类似的问题,是否有某种行业标准或更好的方法?

干杯

这是N:M(基数(的一个明显例子。你要创造的是一个";交叉表";其连接两个独立表的ID。因为您可以在两端都有多个数据。

在这种情况下,您将为父母和兄弟姐妹以及person_parents(id_person, id_parent)person_siblings(id_person, id_sibling)表创建一个单独的表。请记住,您还需要使用此方法将父母和兄弟姐妹创建为一个人,或者您可以选择写下姓名。

相关内容

  • 没有找到相关文章

最新更新