鍍金池/ 問答/PHP  數(shù)據(jù)庫/ 微信用戶和手機(jī)號(hào)用戶在兩張表,怎么相互綁定

微信用戶和手機(jī)號(hào)用戶在兩張表,怎么相互綁定

處理微信用戶綁定手機(jī)號(hào),手機(jī)號(hào)用戶綁定微信的問題

現(xiàn)在棘手的是 微信用戶和手機(jī)號(hào)用戶是在兩張表中
更棘手的是, 現(xiàn)在的微信用戶和手機(jī)號(hào)用戶下面都有相關(guān)聯(lián)的數(shù)據(jù),這如果要是綁定的話該如何操作啊。

還有啊 ,如果想這兩張表合成一張表,有什么思路沒有啊 ,大神們,求指教 ,感謝

回答
編輯回答
凝雅

兩個(gè)表搞定。

  1. 用戶表

屬性:用戶ID,昵稱,頭像,等等用戶的屬性,不要手機(jī)號(hào)碼什么的

  1. 登錄方式表

屬性:主鍵ID,type(手機(jī)or微信openid以及其他類型),openid(手機(jī)號(hào)或微信openid等其他類型用到的id,varchar(40)),用戶ID,banned(是否禁止該方式登錄)

type+openid做一個(gè)索引。
綁定的話就在該表插入一條數(shù)據(jù)即可,不會(huì)混亂

2017年4月19日 23:23
編輯回答
真難過

你可以對(duì)微信用戶和手機(jī)號(hào)用戶看作是2種登錄方式。
我建議不要合成一個(gè)表。
這是我的用戶表簡(jiǎn)約設(shè)計(jì)

member

CREATE TABLE `member` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `tel` bigint(20) DEFAULT NULL COMMENT '手機(jī)號(hào)碼',
  `password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '登錄密碼',
  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '賬號(hào)狀態(tài) 0:正常',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `member_tel_unique` (`tel`),
  KEY `member_tel_status_index` (`tel`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

member_data

CREATE TABLE `member_data` (
  `member_id` bigint(20) NOT NULL COMMENT '用戶編碼',
  `sex` enum('0','1','2') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '性別 0=>女生 1=>男生 2=>未知',
  `nick_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名/昵稱',
  `img` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用戶頭像',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  UNIQUE KEY `member_data_member_id_unique` (`member_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

member_authorized

CREATE TABLE `member_authorized` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `member_id` bigint(20) NOT NULL COMMENT '用戶編碼',
  `prefix` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '第三方名稱',
  `token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '第三方標(biāo)示',
  `data` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '授權(quán)獲得的用戶信息',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `member_authorized_prefix_index` (`prefix`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

如果微信用戶有獨(dú)立的用戶id的話,那就不好整理了。就只能是看做為2個(gè)用戶了。如果將2個(gè)用戶合并為一個(gè),我感覺可以寫一個(gè)功能。去提示用戶是否將2個(gè)合并,讓用戶自己選

2018年8月4日 20:40
編輯回答
莫小染

建議最終一個(gè)主表,微信一個(gè)表里面有用戶id這個(gè)字段,主表里面用戶的id是主鍵自增

2018年8月28日 14:07
編輯回答
忠妾

當(dāng)綁定手機(jī)的時(shí)候,保存手機(jī)用戶的記錄到微信用戶表。也就是說為微信用戶表新增一個(gè)字段關(guān)聯(lián)手機(jī)用戶表。

2018年6月16日 02:37