在关系数据库中记录兄弟姐妹的最有效方法是什么?

时间:2014-02-03 15:05:59

标签: php sql laravel

我有一个个人的SQL数据库,由一个唯一的密钥标识。我需要记录他们是否有兄弟姐妹,他们是什么性别,他们是否比指数个人更老或更年轻,以及他们是否受特定疾病的影响。出于这些目的,他们的兄弟姐妹是否在数据库中并不重要,但解决方案应该适用于其兄弟姐妹不在的大多数人。我的问题:存储此类信息的最有效方法是什么?我是否创建了另一个表,或者将它保存在与序列化数组相同的数据库中,还是我担心忽略的其他一些简单方法?

2 个答案:

答案 0 :(得分:3)

首先定义efficient

将兄弟姐妹信息保存为序列化数组(在单独的字段中)仅在您不打算对此字段执行任何SQL操作时才有效。例如,你不会找到拥有最多兄弟姐妹的人。

如果您的应用程序确实有'Sibling'实体,则需要另一个表。如果兄弟信息只是个人的属性(如名字,结构上更复杂),您可以将其序列化为一列。

答案 1 :(得分:1)

总的来说,我倾向于说:永远不要将序列化数组放入数据库。总有一个更好的解决方案。

此解决方案的外观在很大程度上取决于您要存储的确切数据以及您将如何访问数据。也许你应该为每种类型的数据添加另一个表,也许你应该添加某种has-and-owner-to-many-table表。

很抱歉,您的问题没有一般性的答案,但没有无所不能的解决方案。