我的數據庫存儲版本號;然而,它們有兩種格式:major.minor.build(例如8.2.0,12.0.1)和日期(例如YY-MM-DD)。我曾想過兩種解決方案:同一列的不同類型
+---+---+-----+-----------+ +-----+-----+-----+-----+ +-----+--------+
|...|...|id |versionType| |id |major|minor|build| |id |date |
|---+---+-----+-----------| |-----+-----+-----+-----| |-----+--------|
|...|...|12345|0 | |12345|0 |1 |2 | |21432|12-04-05|
|---+---+-----+-----------| +-----+-----+-----+-----+ +-----+--------+
|...|...|21432|1 |
+---+---+-----+-----------+
或
+---+---+-----+-----+-----+-----+--------+
|...|...|id |major|minor|build|date |
|---+---+-----+-----+-----+-----+--------|
|...|...|12345|0 |1 |2 |null |
|---+---+-----+-----+-----+-----+--------+
|...|...|21432|null |null |null |12-04-05|
+---+---+-----+-----+-----+-----+--------+
這些都不看起來特別有效:第一,需要在兩個表聯接只是爲了獲得一個版本號,而第二廢物兩倍與第一個版本相比,每個版本條目有很多空間或者,我可以將該值存儲在一列中的某些位上,然後在客戶端解釋該值,但我希望對於這種情況有一些標準實踐,我忽略了這一點。
有沒有一種合適的方法來爲關係數據庫中的同一'列'存儲兩種不同類型的數據?
存儲在一個字符串? –
我不是SQL忍者,但我會愉快地將這些值存儲在一個varchar列中。你是否真的需要將它分佈在一些表格中,還是僅僅爲了規範化而做? – brandizzi