情景:在线预订系统
假设我们有一个在线预订系统,其中包含数据库中的客户列表,客户模型如下所示:
import System.Random
import Data.List
import Control.Monad
mkRands = mapM (randomRIO.(,)0 ). enumFromTo 1. pred
replaceAt :: Int -> a -> [a] -> [a]
replaceAt i c l = let (a,b) = splitAt i l in a++c:(drop 1 b)
swapElems :: (Int, Int) -> [a] -> [a]
swapElems (i,j) xs | i==j = xs
| otherwise = replaceAt j (xs!!i) $ replaceAt i (xs!!j) xs
knuthShuffle :: [a] -> IO [a]
knuthShuffle xs =
liftM (foldr swapElems xs. zip [1..]) (mkRands (length xs))
我们希望执行某些操作,例如:
为此目的使用Id属性是否合适?或者是否首选为public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Birthdate { get; set; }
public string drivingLicence { get; set; }
}
等每个对象创建一个新属性,并使用Id仅查询数据库,将Id属性保留在视图之外。
示例:
到目前为止,我只使用Id属性来查询数据库,如下所示:
'CustomerReferenceNo'
但是想知道这样使用它是否普遍常见:
注意' Id'是指客户ID属性,用于预订特定客户的特定客户。
答案 0 :(得分:0)
仅用于数据库目的的用户ID更好。我们不能依赖用户ID。此用户ID在不同环境中可能不同。
例如。
客户'Xyz'存储在ID为1的Dev环境数据库中。 相同的客户'Xyz'存储在ID为11的测试环境数据库中。 同一客户'Xyz'存储在ID为21的Live环境数据库中。
最好使用在所有环境中都是唯一的客户参考号。希望这有帮助!