2016-09-08 72 views
-4

我想知道什麼是管理SQL數據庫上額外字段的最佳方式(在我的情況下是MySQL 5.7),例如我有產品表,字段爲sql-將額外字段添加到sql數據庫的最佳方式

create table product( 
id int auto_increment, 
product_name varcha,r 
description varchar, 
other json, 
primary key(id) 
); 

但是,如果我想添加像weigth或height這樣的額外字段,我會將信息存儲在其他字段中作爲json格式。 這是一個好主意嗎?或者更好地爲每個字段創建一個新列。何時將數據存儲爲json格式是一個不錯的選擇?

+2

[alter table](http://dev.mysql.com/doc/refman/5.7/en/alter-table.html)和[ETL](https://en.wikipedia.org/wiki/Extract ,_transform,_load)隨着你走 – Drew

+0

*「什麼時候是將數據存儲爲json格式的好選擇?」*這是一個與你的問題其餘部分完全不同的**問題。 (答案是:只有當你有一個非常好的理由時,你才能正常存儲它。) –

+0

你不需要很好的理由。你只需要一個理由。其中一個原因可能是您無意針對該標準進行搜索。 – Strawberry

回答

0

嗯,這一切都取決於您的需求。

如果這些「額外」字段的結構將逐行更改,只要您不需要對它們執行SQL操作(例如,使用某種編碼文本可能是一個好主意,WHERE條件)。

反正(只要你其他領域的結構行與行變量),我會建議使用另一個表,您可以存儲所有的額外atributes,例如:

CREATE TABLE extra_attributes(
    id integer not null primary key, 
    product_id integer not null, 
    attribute_name varchar(64) not null, 
    attribute_value varchar(128) 
); 

而且然後創建一個到products表的外鍵。

如果您的所有產品都具有相同的額外字段,最簡單的解決方案是將所需的列添加到產品表中。

相關問題