我正在寻找一些关于如何处理发展问题的建议。
我正在建立一个社区网站,订阅者可以在这里创建自己的私人帖子。他们输入的数据分为两组:
主数据存储为post\\U元表中每个专用post的自定义字段与每个私人帖子相关且唯一的辅助数据辅助数据也可以由帖子作者编辑/删除。查看私人帖子时,还会显示辅助数据。下面是我试图实现的一个示例-不是实际情况,但原则是相同的:
Primary data : 姓名、地址。
Secondary data : 用户可以随时输入任意数量的天气报告。每个报告由3个字段组成:
日期(固定格式/长度)
时间(固定格式/长度)报告(可变文本长度)我正在尝试找出存储/检索/更新/删除辅助数据的最有效方法。删除选项删除整个记录,即所有三个字段。到目前为止,我考虑的选项包括:1. Add additional post_meta custom fields 并将每个天气报告存储为一个包含三个字段的数组,如果是这样,我应该使用重复键(例如:“weather”)或为每个报告提供唯一键,例如:weather1、weather2、weather3等
或
2. Create a custom table 并将每个报告存储为一个具有唯一键或重复键的数组,或可能为三个字段中的每个字段存储单独键,并使用通用日期/时间戳对其进行分组,并为作者帖子ID添加一列作为参考,以检索特定用户的天气报告。
或
3. Create child posts (最初的私人帖子是父帖子),对于每个天气报告,在每个新的子帖子中创建3个自定义字段。
选项1和3很整齐,因为它们遵循WP默认结构,但选项2可能会导致更快的DB查询?尽管如此,我还是倾向于父母/孩子的选择,但我不确定。解决方案必须具有可扩展性,因此假设增长,最终可能会出现成千上万的主要帖子和任意数量的天气报告。
对上述问题有什么想法,或者我可能没有想到的其他选择?欢迎提出任何建议。
谢谢
米克
SO网友:janh
由于您可能希望最终对数据进行一些报告,例如在区域X中打印去年本月的平均温度,因此我从一开始就选择自定义表格。我说的是表,因为我不明白为什么不将位置也放在自定义表中。如果您想执行诸如计算距离之类的操作(并且存储了位置的纬度和长度),这将使您的SQL更干净,更易于编写。
Post元数据没有规范化,如果您有更复杂的场景,那么使用Post元数据会很痛苦。它也不包含有用的索引,因为它没有关联的数据类型。不过,这在一开始可能不是问题,因为您的数据集仍然很小。
在这种情况下,元字段的唯一用途是可以直接使用WP\\u查询,而无需太多麻烦。但我很有信心,您可以通过过滤器向wp\\u查询添加一些功能,并且无论如何,您都必须使用这些高级的东西来操作自动生成的SQL。
也就是说,这还取决于您(以及其他可能与您一起工作的人)在使用特殊表开发时的速度,以及与一些纯基于WP的解决方案相比的速度。你总是可以从3开始,如果项目开始,你会投入更多的时间,让它变得漂亮、干净,然后选择2。数据转换应该不是什么大问题。