我正在开发一个包含页面/帖子、自定义页面/帖子和自定义字段的 CMS。这些自定义字段将通过 UI 进行选择并附加到自定义页面。
例如,我们创建一个自定义页面/帖子“项目”,其中包含以下字段:描述、订单、价格和日期。
我不想为我拥有的每种页面类型使用一个表,我只想使用一个表来存储每个给定自定义字段的每个字段,问题是它们可能有不同的数据类型。 我的问题是,存储例如是一个坏主意(考虑性能)吗?通用长文本类型字段中的订单值?是否最好创建一个包含 3 个字段(日期、整数、文本)的“customvaluestable”,根据其数据类型存储自定义字段的值并将其余字段保留为空?
谢谢
最佳答案
从技术上讲,这是一个坏主意......实际上,这两种想法都是如此。您可能会认为“我不想一直修改表格”,但有一些含义:搜索字符串比搜索数字、日期……效率低,如果您想将所有内容放入文本字段,而不仅仅是会不会占用更多空间,搜索全部是字符串搜索。
你应该问自己的是:你真正想要实现的目标是什么?如果您希望将一些额外的任意数据与静态数据一起存储,您将不会像以前那样搜索......对该数据进行 json 编码,然后将其放入一个称为“customdata”的字段中管他呢。或者使用 nosql/keyvalue-store 开始!
当您想要搜索它时,请多加努力,看看 drupal 如何处理自定义字段。虽然很难看,但至少它们是一致的。数字应该存储在数字字段中。 (因为数字的字典顺序在字符串字段中真的很奇怪......)。
关于mysql - MySQL 中的长文本类型字段中是否存储任何类型(整数、文本、日期)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38609172/