2012年12月29日 星期六

嬰兒的餵奶量公式

因為老是搞不清楚兒子吃奶的量,不曉得到底是因為肚子餓而哭,還是其他原因
所以特地查了一下有沒有相關計算公式,結果還真的有!!

這邊查到兩種版本,大致上都是算一天的需求量,特此記錄一下,僅供參考
  1. 110 x 體重(kg)  ÷ 20 x 30
  2. 體重(kg) x (100~150)

這邊有補充的說明,參考自這裡
  1. 出生開始~到滿月:baby的喝奶量是90~120cc之間,但有些寶寶可高達150cc。
  2. 第2個月開始~:每週會增加10~20cc的奶量。
  3. 滿2個月的時候:喝奶量的平均值是130~160cc之間。
  4. 滿第3個月的時候:平均值就是170~200cc。 
  5. 在四到六個月大以前,寶寶需要多少奶量並沒有標準答案,因為每個嬰兒所需的奶量不盡相同。初生嬰兒都有天生的攝食及成長的本能,媽媽們只要迎合寶寶的生理需求,餓了就餵,不吃就停餵。若有需要,也有簡單公式可供餵食配方奶的媽媽做參考,但僅供參考。
  6. 體重(公斤)x150c.c.,約為四到六個月大以下的寶寶每天所需配方奶的總量。而親餵母奶則不方便度量,但只要依照寶寶的需求,並記錄生長曲線,就萬無一失了。唯一要注意的是記錄寶寶的生長曲線,只要生長曲線正常,就表示營養的攝取是足夠的。
 評估寶寶有沒有吃飽的方法:
  1. 尿濕測試:如果寶寶只有吃母奶並且一天小便至少6次,就表示奶量是足夠的。 
  2. 體重測試
    如果嬰兒體重增長不足(每月少於500克或每周少於125克),表示奶量不夠,嬰兒沒有吃飽,也可能是嬰兒生病。滿月後的嬰兒,身高、體重、頭圍之成長是否正常,可由生長曲線圖測知。 
  3. 瞭解體重之正常與否:
    一般出生嬰兒的平均體重,約為3公斤,
    第一個月,平均增加體重1公斤,
    第二個月,平均增加體重0.9公斤,
    第三個月,平均增加體重0.8公斤,
    第四個月,平均增加體重0.7公斤(約為出生時體重的二倍),
    第五個月,平均增加體重0.6公斤,
    第六個月以後平均每個月增加0.4~0.5公斤,
    到一周歲時約為10公斤(約為出生時體重的三倍)。
其他參考指標:
  1. 1個月大嬰兒的平均喝奶量(c.c.), 不低於體重(公斤)乘以10
  2. 1個月大嬰兒體重應較出生時增加700~800克
  3. 出生第2、3個月的體重,每月應增加約1公斤
  4. 4個月大嬰兒體重應為出生時的1.5倍

[Android]資料庫更新

一個App寫好後,通常過了一段時間後突然發現有些功能不太夠用,要寫新功能,但左思右想,這個新功能需要在原本的資料庫增加欄位,這時候就比較麻煩了...

最快的作法是把舊的資料表刪除,然後重新建新的資料表,可是當我已經有廣大的使用者族群的時候,刪除舊資料對使用者來說是個災難性的體驗,所以這個方案在已經上線的app不太適用...
但如果再刪除之前,先把資料都存起來,這樣好像也滿複雜的,我只是想要把其中一個資料表增加欄位啊...

這裡查到一個不錯的作法,記錄於此備份一下,這裡的方法利用資料庫Transaction的功能。作法如下:

  1. 修改DBHelpler裡的資料庫版本,若原本是1,就要+1修改成2
  2. 一樣在onCreate()把最初建立的資料庫欄位做調整,程式碼範例:
    //輔助類建立時運行該方法
       @Override
       public void onCreate(SQLiteDatabase db) {
       String DATABASE_CREATE_TABLE =
              "create table newMemorandum("
     + "_ID INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL,"
            + "date VARCHAR,"
            + "note VARCHAR,"
            + "pw VARCHAR,"
            + "reminder INT,"//新增欄位
            + "type VARCHAR,"//新增欄位
            + "memo VARCHAR"//新增欄位
            + ")";
           db.execSQL(DATABASE_CREATE_TABLE);
    }
  3.  Overide函數 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),程式碼範例如下:
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      //oldVersion=舊的資料庫版本;newVersion=新的資料庫版本
     
      if (newVersion > oldVersion) {
       db.beginTransaction();//建立交易
         
        boolean success = false;//判斷參數
            
        //由之前不用的版本,可做不同的動作    
        switch (oldVersion) {
        case 1:          
          db.execSQL("ALTER TABLE newMemorandum ADD COLUMN reminder integer DEFAULT 0");
          db.execSQL("ALTER TABLE newMemorandum ADD COLUMN type VARCHAR");
          db.execSQL("ALTER TABLE newMemorandum ADD COLUMN memo VARCHAR");
          oldVersion++;
                 
         success = true;
         break;
        }
                    
         if (success) {
           db.setTransactionSuccessful();//正確交易才成功
          }
        db.endTransaction();
      }
      else {
        onCreate(db);
      }  
    }
完成以上 內容後,程式就會自動判斷資料庫的版本再進行Upgrade的動作。