[SQL ] 面對特例的情況怎麼開Table

作者: vi000246 (Vi)   2018-01-25 15:14:15
資料庫名稱:mssql
資料庫版本:Microsoft SQL Server 2012 - 11.0.5343.0 (X64)
May 4 2015 19:11:32
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: )
(Hypervisor)
內容/問題描述:
我們公司是百貨業,常常辦一些促銷活動,需要儲存活動資料
例如每日簽到送禮物的活動,
每次的簽到活動可能五次有一次是特例
有特殊規則要判斷 只好開新的欄位
或是轉盤抽道具 有時靠累積消費取得的次數來抽獎
有時是一天抽一次 儲存的欄位會有一、兩欄不太一樣
想問一下這種情況 資料表要怎麼設計
總不能為了特例加欄位吧
每遇到特例就加欄位 到最後資料表看起來會亂七八糟
目前用最笨的方法,一個活動建一個資料表
https://imgur.com/qKvN0NT
不知道有沒有人遇過類似情況
該怎麼設計資料表呢?
作者: kyrc (橘子)   2018-01-25 15:40:00
加個Metadata欄位,Type, ItemType直接存json進去?
作者: vi000246 (Vi)   2018-01-25 17:04:00
應該可以 我沒看過有人這樣做過 想問在關聯式資料庫這樣做可行嗎如果要下where查詢 有辨法在sql裡將json解析出來嗎剛研究過 需要sqlserver2016才支援在T-SQL解析JSON的功能 如果在舊板本 可能要先把資料撈出 再用程式解析JSON再做where查詢了
作者: kyrc (橘子)   2018-01-25 17:27:00
可以,但SQL Server 2016以上才原生支援,其他要自己想辦法
作者: vi000246 (Vi)   2018-01-25 23:07:00
好的 感謝 我再研究有沒有其他方式

Links booklink

Contact Us: admin [ a t ] ucptt.com