Mik*_*sen 5 sql database postgresql postgresql-9.1
我有一个装满食谱的数据库,每行一个食谱.我需要为每个配方存储一堆任意"标志",以标记各种属性,如无Gluton,没有肉,没有红肉,没有猪肉,没有动物,快速,简单,低脂肪,低糖,低卡路里,低钠和低碳水化合物.用户需要通过选中UI中的复选框来搜索包含一个或多个这些标志的配方.
我正在寻找在食谱表中存储这些属性的最佳方法.我的想法到目前为止:
由于后端进程添加了配方,因此写入性能不是一个大问题,搜索速度至关重要(最终可能会有几十万个配方).我怀疑我会经常添加新标签,但我希望它至少可以做到没有重大问题.
谢谢!
我建议您使用标准化设置。我不建议从一开始就将其设置为非规范化结构。
在不知道他正在发生的事情的所有细节的情况下,我认为最好的设置是拥有您的配方表和新属性表以及新的 recipe_property 表。这允许配方具有 0 个或多个属性并规范化您的数据,从而使维护和查询数据变得快速而轻松。
高级结构将是:
CREATE TABLE recipe(recipe_id);
CREATE TABLE property(property_id);
CREATE TABLE recipe_property(recipe_property_id,recipe_id,property_id);
Run Code Online (Sandbox Code Playgroud)