鍍金池/ 問答/PHP  數(shù)據(jù)庫/ mysql 數(shù)據(jù)庫設計中用戶信息部分怎樣設計好?

mysql 數(shù)據(jù)庫設計中用戶信息部分怎樣設計好?

在日常數(shù)據(jù)庫用戶信息部分怎樣設計好.

假設結(jié)構如下:

CREATE TABLE users(
    `id` INT(11) PRIMARY KEY AUTO_INCREMENT,
    `nickname` char(20) COMMENT '昵稱',
    `age` INT(4) COMMENT '年齡',
    `phone` char(11) COMMENT '手機號',
    `password` char(100) COMMENT '密碼',
     ....
    `other` text COMMENT '其他'

)

疑惑點是在 other 里。里面存放用戶的其他信息。結(jié)構如:{"birthday":"2018-06-06","place":"陜西"}。

這樣做有什么好處以及不好的地方。更好的設計是怎樣的。謝謝指導!

回答
編輯回答
不二心

other 里存放的數(shù)據(jù)應該只是單純地用于記錄,絕對不會被用于 搜索、 排序、 統(tǒng)計、 聯(lián)表的字段。

birthday、place這樣的字段我一般還是會分別使用一個字段進行存儲的,這兩個字段很容易被用于類似不同年齡段的用戶占比,不同地區(qū)的用戶占比 的統(tǒng)計功能,存在other中的話會很不方便。

當然,具體怎樣存儲還是需要根據(jù)實際需求來定。

2018年5月7日 02:59
編輯回答
伴謊

這樣的設計我個人認為挺不錯。
這樣做的好處:

  1. 容易擴展字段,不需要為了添加屬性就去添加字段

壞處:

  1. 不方便對某個屬性搜索,比方說要搜索出某段時間內(nèi)生日的用戶,那么可能會對生日的字段記錄在other里面,可能存在其他日期的屬性。
  2. 不利于索引的創(chuàng)建。other里面的屬性不確定

具體來說,我認為需要根據(jù)需求來確定other里面的信息,不能把所有其他的屬性都放入other里面。

2017年2月3日 18:28