是數據庫領域的東西,將是確定做劃定的數據?在數據庫領域OK
喜歡的東西
create table column_names (
id int identity (1,1) PRIMARY KEY,
column_name varchar(5000)
);
,然後存儲它的數據如下
INSERT INTO column_names (column_name) VALUES ('stocknum|name|price');
是數據庫領域的東西,將是確定做劃定的數據?在數據庫領域OK
喜歡的東西
create table column_names (
id int identity (1,1) PRIMARY KEY,
column_name varchar(5000)
);
,然後存儲它的數據如下
INSERT INTO column_names (column_name) VALUES ('stocknum|name|price');
號這是不好:
,以創造,你必須新的查詢追蹤事物的存儲方式。價格或名稱或stocknum是加入
查詢將是討厭
數據庫不能指定數據類型數據或驗證它
你不能創建約束此類數據現在
基本上你顛覆處理的事情,使你自己的RDBMS」計劃,所以你限制RDBMS工具多少可以幫助您和您所做的系統更難o瞭解新人。
這種系統,我能想到的唯一可能的優勢在於,它可以作爲一種變通方法,以避免處理完全不可能的DBA,無論功績誰否決所有架構更改。不幸的是,這可能發生。
當然有一個例外的一切。我目前正在進行審計日誌記錄要求非常嚴格的項目。日誌記錄完成到一個數據庫,我們使用分隔的字段來存儲字段,因爲應用程序永遠不會與這些數據交互,它會被寫入一次,並保持獨立。
同意OP的想法幾乎是你存儲數據的最糟糕的方式。 – HLGEM
@HLGEM:我看到更糟糕的是,在使用XML而不是管道分隔符的varchar(2000)列中。 * _ < –
幾乎肯定不會。
*原子*並不完全代表「你不應該能夠將數據解析成更小的組成部分」。這意味着,如果一個值*包含*組成部分,那麼dbms或者a)忽略這一事實,就像它在'SELECT CURRENT_DATE'時所做的那樣,或者b)提供了操作這些部分的函數,如'SELECT EXTRACT(YEAR FROM CURRENT_DATE )'。 * dbms意義上* atomic *的重要之處在於*用戶*不必編寫任何代碼來操作這些部件。無論如何。 –
no ...使用枚舉,配對值...等分隔符以外的文本 – ajreal
不,這很糟糕。使用多對多結構。 – BlackICE
我不會。使用結構化的東西例如'create table column_names(id int identity(1,1)PRIMARY KEY,column_name varchar(50)not null,column_order int not null);' –