我正在用Ruby on Rails構建一個應用程序來測試人口統計變量。現在,我對如何從屬於用戶模型的模型(屬性)的兩個屬性聲明數據類型有疑問。這些屬性是「一般」和「公民身份」。我知道元素可以是字符串數據,但如果我假裝使用此信息進行一些統計,會更方便地聲明此數據,如整數?,也就是說,這是統計中的主格數據,所以一個數字足以代表一個狀態或一個基因,即。 1→femenin/2→masculin。我應該用整數還是字符串來聲明這個屬性?
我會很感激你的建議。謝謝你的時間。
我正在用Ruby on Rails構建一個應用程序來測試人口統計變量。現在,我對如何從屬於用戶模型的模型(屬性)的兩個屬性聲明數據類型有疑問。這些屬性是「一般」和「公民身份」。我知道元素可以是字符串數據,但如果我假裝使用此信息進行一些統計,會更方便地聲明此數據,如整數?,也就是說,這是統計中的主格數據,所以一個數字足以代表一個狀態或一個基因,即。 1→femenin/2→masculin。我應該用整數還是字符串來聲明這個屬性?
我會很感激你的建議。謝謝你的時間。
Enums哪些是整數位掩碼通常是一種很好的方式,對於存在一定選擇的屬性以及添加/刪除選項是開發人員級別關注的情況。
class Person < ApplicationRecord
enum gender: [:undisclosed, :male, :female, :other]
end
這會將性別存儲在整數列中,值爲0-3。掃描和索引的列比字符串列要快得多。
它還爲您節省了將可接受的字符串值列入白名單並根據該值編寫作用域的麻煩。
你可以做Person.female
來獲得一個範圍。
即使它是'M'/'F'這樣簡單的東西,我總是會用一個描述性的值,但這取決於你。考慮清晰度和可維護性。充滿數字值的數據庫可能很難在支持環境中閱讀。 – Mick
我認爲最好在你的數據庫上使用字符串,在你的應用上使用'to_sym' – sa77