我有一个相当大的数据库,其中包含许多代表不同产品类型的不同表格(例如汽车;婴儿推车)。
我正在使用一个用PHP构建的网站来访问数据并显示它,我允许用户过滤数据(典型的在线产品数据库类型)。
我不确定我是否以正确的方式存储我的元数据。我正在使用XML来做很多事情,这需要先在MySQL中创建一个产品类型表,然后在我的大XML“列属性”文件中添加有关该表中每个列的信息。因此,我将在XML表中列出每列的名称,其中包含有关该列的信息。我在XML文件中存储列的本地化名称,并指示列中存储有关产品的信息类型(例如,列是显示维度(列在产品维度区域中)还是功能(用于特征区))。
首先,我是否会将所有这些自定义元数据存储在XML中?
其次,如果我应该将其中的一些存储在MySQL中(我认为我应该将其中的一些存储在那里),那么最好的方法是什么?我看到我可以在MySQL中创建列“评论”....这些是数据库的标准票价吗?如果有一天我转到Oracle,我会丢失所有评论信息吗?我不打算将大量信息移到数据库中,其中一些可以通过在我的列名称中添加一个小标识符来实现(例如number_of_wheels变为number_of_wheels_quantity,length变为length_dimension)
来自数据库设计大师的任何建议都会受到极大的赞赏。谢谢:))
答案 0 :(得分:2)
首先,我是否可以将所有这些自定义元数据存储在XML中?
是的,XML是一个很好的标记,用于以几乎人类可读的格式传输数据,但是存储它是一个可怕的标记。搜索XML非常昂贵,而且我不知道通过存储在DB中的字段中的XML进行查询搜索的(好)方法。使用直接存储这些内容的表可能会更好,如果需要,可以在从DB查询后轻松将它们转换为XML。我认为在您的情况下,包含以下列的表格将非常有用:"ColumnName","MetaData"
您可以根据自己的示例填充值:
__________________________________________________________________________________________________
|colDimension | Is a column showing a dimension (to be listed in the product dimensions area) |
|colFeature | a feature (for the features area) |
--------------------------------------------------------------------------------------------------
此方案也将解决您的评论难题,因为您可以在上表中添加另一个字段来存储注释,这将使您的中间层(在您的情况下为php)更容易访问它们(如果您想要的话)显示这些评论。
我不得不对意图和现有数据等做一些假设,所以如果我对任何事情都不对,请告诉我为什么它不适合你,我会回复一些更正或其他指示
答案 1 :(得分:0)
请参阅,您的目的是将Meta数据保存在某个位置。对? 我建议你使用免费提供的工具Mysql Workbench。在此工具中,您可以选择创建ER图(或EER图)。您可以保留整个结构,并且可以在任何时间点与服务器同步并恢复结构。您也可以备份这些结构。如果你还没有使用它,你必须先学习它。但最后它是一个非常有用的工具,可以有条理地保持结构。