只有兩行的表如何設定約束?

來源:互聯網
上載者:User
因為公眾平台開發需要對access_token和jsapi_ticket進行緩衝,所以建立了一個wx_token的表,表有三個欄位,兩行資料,如下:

| key| content | expire |
| access_token | xxxx | 111111111 |
| jsapi_ticket | xxxx | 111111111 |
只作為緩衝,所以每次查詢或者修改“content”和“expire”內的內容,“key”內的內容作為標示。

最開始我只是建立這兩個表,沒有設定主鍵和約束,但是這樣查詢和更新都會出現錯誤。
我的問題是:
1.必須要把key設定成主鍵嗎?
2.不設定主鍵就沒有辦法查詢和更新嗎?(或者說簡單的方法)如果有那麼該如何建表?
以上。

回複內容:

因為公眾平台開發需要對access_token和jsapi_ticket進行緩衝,所以建立了一個wx_token的表,表有三個欄位,兩行資料,如下:

| key| content | expire |
| access_token | xxxx | 111111111 |
| jsapi_ticket | xxxx | 111111111 |
只作為緩衝,所以每次查詢或者修改“content”和“expire”內的內容,“key”內的內容作為標示。

最開始我只是建立這兩個表,沒有設定主鍵和約束,但是這樣查詢和更新都會出現錯誤。
我的問題是:
1.必須要把key設定成主鍵嗎?
2.不設定主鍵就沒有辦法查詢和更新嗎?(或者說簡單的方法)如果有那麼該如何建表?
以上。

1、主鍵就相當於 唯一值+索引 的功能,你key欄位的記錄往下會有重複嗎?你建表的時候忘加或者後期需要主鍵,可以後期添加的,有索引的話,當你記錄數足夠多時效率大大提高。(也可以單獨創索引)

2、索引除了提高查詢速度外,也能提高UPDATE,DELETE,INSERT操作的速度,比如你這裡經常會使用:
select * from wx_token where key='access_token';
或者
update wx_token set content='值',expire='值' where key='access_token';

主要看記錄數量、哪種DML語句執行的頻繁來做決定。

AccessToken 和 Ticket 是有到期時間的,因此不建議使用資料庫作為緩衝層,可以考慮使用記憶體緩衝(Apc 或 memcached)等。

https://github.com/thenbsp/wechat/blob/master/documentation/accesstoken.md
https://github.com/thenbsp/wechat/blob/master/documentation/ticket.md

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.