SQLServer -------- 一表多用,将关联的表变成字符串存储(C# 字符转datatable)
在进行表设计的时候,表之间的关联关系有很多,而关联表的有用字段可能很少而且用到的数据量也不会太大,可以将关联的表变成字符串存储
如:一个订单有多个供应商订单,那么可以吧供应商信息存储到订单表其中一个字段中
上述:同一行不同列使用 ~ 线分隔,不同行使用 | 分隔
在借助字符串转换为dataTable 就可以得到一个被关联的供应商表了
/// <summary> /// 1~2|3~4 与DataTable的相互转化,colName列名集合 /// </summary> /// <param name="ss"></param> /// <param name="colName"></param> /// <returns></returns> public DataTable ConvertStrToDt(string ss, List<string> colName) { DataTable dt = new DataTable(); string[] s1 = ss.Split('|'); for (int i = 0; i <= s1.Length - 1; i++) { string[] s2 = s1[i].Split('~'); DataRow drow = dt.NewRow(); for (int j = 0; j <= colName.Count - 1; j++) { if (i == 0) dt.Columns.Add(colName[j]); drow[colName[j]] = s2[j]; } dt.Rows.Add(drow); } return dt; }
不同的数据库设计,对程序的影响还是很大的,这只是一种实现方式