所以基本上我正在使用的是一個充滿電話號碼的數據庫。如何創建一個用於將電話號碼與用戶關聯的DRY工作流程
如果我從那個電話數據庫中獲得其中一個用戶,並且他們註冊到我的網站我想自動關聯已存在的數據庫中的號碼,那麼我將如何將這兩個表連接在一起註冊?
所以基本上我正在使用的是一個充滿電話號碼的數據庫。如何創建一個用於將電話號碼與用戶關聯的DRY工作流程
如果我從那個電話數據庫中獲得其中一個用戶,並且他們註冊到我的網站我想自動關聯已存在的數據庫中的號碼,那麼我將如何將這兩個表連接在一起註冊?
假設你有電話號碼錶和用戶表,則需要同時存儲表的主鍵一起
你可以這樣做:
正確的選擇取決於你的數據之間的關係時試圖建模。
因此,數據庫將使用組合構造。保留phone_numbers
表w/phone_number_id
,users
表w/user_id
,然後customer_phone_numbers
表將user_ids映射到phone_number_ids。然後你的PHP代碼會做這樣的事情:
<?php
$user->save(); // save normal user data
$phoneNumbers = array();
foreach($user->getPhoneNumbers() as $phoneNumber) {
$phoneId = getPhoneNumberId($phoneNumber); // get the phone number, or save a new record if necessary, and return that number
$phoneNumbers[] = $phoneId;
}
$user->savePhoneNumbers($phoneNumbers); // adds or removes phone numbers as necessary
編輯:基於您的反饋,它聽起來並不那麼像你只是尋找一種方式將數據關聯。如果我理解正確,用戶將通過他們的電話註冊您的網站,然後在網站上註冊。發生這種情況時,您希望將兩個註冊組合在一起。
用戶是否正在通過手機創建完整的配置文件?您是否有過程來驗證用戶提供的電話號碼實際上是他們的?
如果用戶沒有通過創建手機的完整的個人資料,這聽起來像有兩種類型的「配置文件」中存儲,一個完整的網站的個人資料,電話等個人資料。這樣,您將擁有一個電話配置文件w/a phone_profile_id
和一個常規用戶記錄w/a user_id
。然後,讓用戶驗證他們的電話信息,並使用上述一個成分表其關聯到一個phone_profile_id
。
這是否更接近?
謝謝, 喬
怎麼會協會的工作......我不完全得到它。請詳細解釋一下。 讓我解釋一下......所以我有SMS服務...基本上它會說你好,你怎麼樣?舉個例子...那麼如果用戶在網站上註冊,它會說約翰你好,你好嗎? 因爲我保留用戶信息。 所以在用戶註冊之前我想我只想檢查已經通過電話選擇了用戶的數據庫。 – lifeiscontent 2010-04-22 10:19:45