我正在尝试找出系统中特定功能的设计(它是基于云的服务的一部分)
本质上,我希望用户能够为与系统集成的简单 CRM 输入/检索系统创建自己的伪“表”。
所以我有两个问题需要帮助
我想知道如何存储数据,我想到了两种布局
- 制作 3 个表格,例如存储text、integer或 double
cms_item_text -
[id, heaqderID, data (text)]
cms_item_int -
[id, headerID, data (int)]
cms_item_double -
[id, headerID, data (double)]
- 或cms_item -
[id, headerID, data (text)]
我会(使用 MySQL cast()函数在执行订单时将文本转换为整数/双精度order by cast(data as signed integer)
)
现在数据的检索是另一回事。由于它通常在表格视图中,从中读取的最佳方法是什么?我是这样想的——
SELECT barcode.data as barcode, price.data as price, notes.data as notes FROM cms_item barcode, cms_item price, cms_item notes WHERE (barcode.headerID = 1 and barcode.id = 1) and (price.id = 1 and price.headerID = 2) and (notes.id = 1 and notes.headerID = 3)
这样我就可以得到类似的结果
array("barcode" => "eg", "price" => "123", "notes" => "hello there")
array("barcode" => "no2", "price" => "456", "notes" => "yes")
最好的设计路径是什么?