none
怎樣做比較好? RRS feed

  • 問題

  • 如果資料表有一個欄位叫 Pen

    Pen 欄位裡 A、B、C代表著各種種類的筆,後面數字是流水號。

    PK  Pen

     1 A001

     2 B001

     3 C001

     4 A002

     5 C002

    如果程式中要抓取所有 A 開頭種類的筆 

    1. SELECT  PenType  FROM  Table  WHERE  PenType  like  'A%'

    2. 再另外開個欄位存筆的種類 

    PK  Pen       Type

     1  A001 A

     2  B001 B

     3  C001 C

     4  A002 A

     5 C002 C

    SELECT   PenType  FROM  Table  WHERE  Type = 'A' 

    不知道為了好判斷,這樣另開一個欄位會不會不好?

    3. 還是還有更好的做法?


    2015年4月13日 下午 03:25

解答

所有回覆

  • 不知道怎麼排版 版面歪了@@

    下面 A B C A C  是 Type 的値

    2015年4月13日 下午 03:27
  • 可以考慮加了Type欄位後 , Pen就不用在存入ABC的字樣 , 而只保留流水號

    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)

    • 已提議為解答 Alex_Lee 2015年4月14日 上午 03:27
    • 已標示為解答 紅日 2015年4月19日 下午 12:07
    2015年4月14日 上午 01:54
  • 我的建議是 直接開三個欄位

    PK、Pen、Type

    1、A001、A

    2、B001、B

    ...沒必要特別用 like 去查Pen

    這讓我想到之前有一篇文章 為什麼win OS 直接跳10

    那篇文章表示 因為有一些舊系統 是用9去判斷95、98 雖然不知道是否是真的...但真的沒必要省下Type的欄位


    2015年4月14日 上午 03:07
  • 像 Coding Kid Peter Chang所說,建一個"Type"會比較好,也可以加個 Index去 Type,這樣會有更好performance

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆標示為解答以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to clickMark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2015年4月14日 上午 05:24