跨多个表搜索(最佳实践)

2024-02-07

我有由表组成的物业管理应用程序:

tenants
landlords
units
properties
vendors-contacts

基本上,我希望一个搜索字段可以搜索所有内容,而不必选择我要搜索的类别。这是一个可以接受的解决方案(技术方面吗?)

从长远来看,跨 5 个表进行搜索是否可以,并且不会使服务器陷入困境?实现这一目标的最佳方法是什么?

使用 PostgreSQL


为什么不创建一个视图,它是表的并集,将要搜索的列聚合为一个,然后搜索该聚合列?

你可以这样做:

select 'tenants:' + ltrim(str(t.Id)), <shared fields> from Tenants as t union
select 'landlords:' + ltrim(str(l.Id)), <shared fields> from Tenants as l union
...

这需要在客户端查询中嵌入一些逻辑;它必须知道如何制造它正在寻找的密钥,以便搜索single field.

也就是说,如果您只有一个单独的列,其中包含“类型”值(例如房东、租户),然后对类型和 ID 进行过滤,那么可能会更好,因为它的计算成本会更低(并且可以更好地优化) )。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跨多个表搜索(最佳实践) 的相关文章

  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • python Soap zeep模块获取结果

    我从 SOAP API 得到如下结果 client zeep Client wsdl self wsdl transport transport auth header lb E authenticate self login res cl
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • Mac 上用户“postgres”的密码身份验证失败

    我在创建新的 psql 用户时遇到问题 因为我无法以 postgres 身份登录 psql 我已尝试过 1 sudo u postgres psql 2 sudo u postgres createuser img site P s e 他
  • “WHERE”处或附近的语法错误

    创建 postgres 函数时会导致错误 如下所示 错误 WHERE 处或附近的语法错误 第 19 行 其中 s shift id shiftid 错误 错误 WHERE 处或附近的语法错误 SQL状态 42601 人物 108 请帮忙 C
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • 迭代 my_dict.keys() 并修改字典中的值是否会使迭代器失效?

    我的例子是这样的 for my key in my dict keys my dict my key mutate 上述代码的行为是否已定义 假设my dict是一本字典并且mutate是一个改变其对象的方法 我担心的是 改变字典中的值可能
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包
  • 替换字符串中的多个字符,而不使用任何嵌套替换函数

    我的表中存储了一个方程 我一次获取一个方程 并希望将所有运算符替换为任何其他字符 输入字符串 N 100 6858 6858 N 100 0 2 N 35 运算符或模式 替换字符 输出字符串 N 100 6858 6858 N 100 0
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1

随机推荐

  • 如何创建一个 Ninject 自定义作用域,在该对象被释放之前返回相同的对象?

    在 Ninject 中 在单例范围内声明绑定意味着每次都会返回相同的对象 永远只能有一个对象 我想要的是一次返回一个对象 换句话说 第一次调用 Get 实例化一个新对象并返回它 对 Get 的后续调用返回相同的实例 该对象已被处置 对象被释
  • 使用 Testbed 对 Google App Engine 进行单元测试时出现 InvalidModuleError()

    当我尝试为由多个模块组成的 Google App Engine 应用程序编写一些 Python 单元测试时 我一直在努力解决一些错误 我一直遵循以下指导https cloud google com appengine docs python
  • 切片器同时管理表中的多个列

    我有一个报告页面 其中包含有关汽车和自行车的表格 它们每个都是一个单独的表 例如 Cars Id CarName Time1 Bikes Id BikeName Time2 这些表之间没有关系 但它们必须显示在同一页面中 我怎样才能使用Sl
  • 哪些浏览器支持 MathML?

    我们很快就会开始开发 TeX 到 MathML 的转换器 所以 我想知道哪些浏览器 从哪个版本开始 正式支持 MathML 谢谢 几乎没有 只有 Firefox 和 Safari 可以处理 MathML See https caniuse
  • Django:使用小部件来限制 ModelForm 中的选择

    我的模型形式继承自子系统形式 我想限制用户在表单中的选择 特别是名字 我知道我必须使用小部件 但这不起作用 我必须使用 SubsytemForm SUBSYSTEM CHOICES a1 a2 a3 class Subsystem mode
  • Android:如何上传.mp3文件到http服务器?

    我想将 mp3 文件 仅 从设备上传到我的服务器 我想浏览媒体数据的路径并选择任何 mp3 文件并上传它 我怎样才能做到这一点 我最终的 JAVA 和 PHP 代码用于将文件从 Android 的 SD 卡上传到我自己的 Web 服务器 J
  • 操作栏中的三点操作溢出菜单?

    I noticed that in my app when I add a menu for new devices that dont have a hardware menu button it adds the three dots
  • 如何以编程方式绘制嵌套圆

    这里我使用图层列表通过 XML 绘制嵌套圆
  • 如何在 PostgreSQL 中查找序列中的间隙?

    我有一个带有 id 和 number col 的项目表 Stackoverflow 上有很多关于查找 ID 中的空白的问题 但我要查找的是数字中的空白 例如 如果我有 3 件物品 id number col 1 1 1 2 1 4 我需要一
  • RecyclerView日志语句:W/RecyclerView:RecyclerView不支持滚动到绝对位置。使用scrollToPosition代替

    我正在更新一个旧的 Android 项目 现在我反复从 RecyclerView 收到此日志语句 W RecyclerView RecyclerView does not support scrolling to an absolute p
  • 如何从nodejs获取ajax响应

    我正在尝试提交表单 然后它会发送状态success通过 AJAX 但是 当我在提交表单后从 NodeJS 发送状态时 它不会到达 AJAX 代码 因为我已经放置了一个alert 语句来检查它是否达到它 警报没有被触发 但它直接打印我写的值s
  • 如何通知用户桌面应用程序的重要事件?

    除了 MS Office 等其他软件之外 我们的客户还使用我们的软件 使用 Webstart 启动的 Java Swing 应用程序 来完成他的工作 有时他必须在我们的软件中立即处理一些重要事件 客户希望得到一个显着的通知 现在他可能正在使
  • 休息框架“get() 缺少 1 个必需的位置参数”

    我想将 GET 参数 pk 传输到 django Rest framework Browser 但在我的 view py 中 我设置了 GET 方法来接收 pk 参数 views py 这是 urls py 代码 还有一个问题 如果我在py
  • PHP - 使用新函数时如何避免旧服务器上的解析错误

    当我使用匿名函数时 但另请参阅下面的注释 例如 f function use out echo out 它会在 PHP 版本早于以下版本的服务器上产生解析错误5 3 0 我的软件需要兼容未知的服务器 但同时 我也想使用新的功能 所以我想我会
  • “发现重复的类” - IntelliJ 和 .class 文件

    我最近将我们公司的一个项目导入到IntelliJ Idea 10 5 1 中 我们使用ant构建脚本和 IntelliJ 都支持这一点 然而 当编译输出目录等于源代码目录时 IntelliJ似乎有一个明显的问题 即 class文件被放置在与
  • 我想用 Thymeleaf 缩写字符串

    我有一个表 我想更改一列 该列包含一个字符串 例如 这是我的字符串 gt 这是我的 我尝试用 abbreviate 来做到这一点 td td 但我收到此错误 EL1043E 意外的令牌 预期为 rparen 但是 是 lcurly S fg
  • 使用 Angular Observable 订阅会话存储密钥

    我试图实现我所希望的一个简单的 查看会话存储中的密钥并在它发生变化时更新它 的场景 但 Observables 确实让我困惑 message new Observable observer gt observer next window s
  • 在 Grails 中用自己的方法扩展 SpEL?

    我想在 Grails 应用程序中添加自定义 SpELL 方法 就像为普通 Spring Security 应用程序所做的那样这个问题 https stackoverflow com questions 6632982 how to crea
  • 如何在eclipse中附加php文档

    有没有办法在 Eclipse 中附加 PHP 文档 这样如果我将鼠标悬停在任何函数上 我就可以获得所有详细信息和相关描述 与 javadocs 类似的内容 Using 日食 赫利俄斯 php5 操作系统 Ubuntu 12 04 以下是将
  • 跨多个表搜索(最佳实践)

    我有由表组成的物业管理应用程序 tenants landlords units properties vendors contacts 基本上 我希望一个搜索字段可以搜索所有内容 而不必选择我要搜索的类别 这是一个可以接受的解决方案 技术方