我最近為一個家庭成員制作了一個簡單的資料庫。該資料庫存盤個人及其近親,包括兄弟姐妹。問題是,與父母不同,兄弟姐妹是可變的,一個人可能有 1 個或 12 個。
我的 SQL 表的簡化版本如下所示:
| 姓名 | 年齡 | 父母 | 兄弟姐妹| | | | | | | | | | |
目前兄弟姐妹被壓縮成一個字串并用分隔符存盤到兄弟姐妹列中。
示例:“john%doe & liam%doe & james%doe#”
實際的字串有 20 個奇數欄位,這使得打包和解包字串變得混亂。它還使添加新欄位變得困難,因為更改資料存盤順序會導致資料加載不正確。我環顧四周,注意到許多資料庫必須面臨類似的問題,是否有某種行業標準或更好的方法?
干杯
uj5u.com熱心網友回復:
這是 N:M(基數)的一個明顯例子。您必須創建一個“交叉表”,它連接兩個單獨表的 ID。因為您可以在兩端擁有多個資料。
在這種情況下,您將創建為父母和兄弟姐妹一個單獨的表,以及person_parents(id_person, id_parent)和person_siblings(id_person, id_sibling)表。請記住,您還需要使用此方法將父母和兄弟姐妹創建為一個人,或者您可以選擇寫下名字和姓氏。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/403639.html
標籤:
上一篇:Python中的字串操作:
下一篇:為什么我的字串沒有被正確列印?
