I'm building a talent management CRM application and I'm having trouble choosing between a SQL or NoSQL database for my data.
我正在构建人才管理CRM应用程序,我在为数据选择SQL或NoSQL数据库时遇到问题。
The application will only have a few 'core' entities (Person, Job, Company, Interview), and will rely heavily on 'tagging' of those entities. You can add Tags and Notes to a Person, a Job, a Company, and then sort/search data by those tags.
该应用程序将只有一些“核心”实体(人员,工作,公司,面试),并将严重依赖这些实体的“标记”。您可以向人员,作业,公司添加标签和备注,然后按这些标签对数据进行排序/搜索。
What I learned about NoSQL is that I can just have a Person object (document) with an array of Tags and Notes, where in SQL I would need separate Tags and Notes tables and construct joins to gather all my data for a Person.
我从NoSQL中学到的是,我可以拥有一个包含Tags和Notes数组的Person对象(文档),在SQL中我需要单独的Tags和Notes表,并构造连接以收集Person的所有数据。
Could anyone give me some pointers on what would be the way to go for my particular scenario?
谁能给我一些关于我的特定场景的方法的一些指示?
Thanks!
1 个解决方案
#1
3
Our ERP system is based on UniData (NoSQL), it is okay for performing the standard tasks needed to do business like entering in customers, creating sales orders, invoicing etc. But when it comes to creating reports that were not originally foreseen it is quite cumbersome. The system only lets you create reports off of one table, if you need data from another table you have two options: 1. Create what is called a virtual attribute for every field you need to look up from a different table, Or write a UniBasic program to retrieve the data needed.
我们的ERP系统基于UniData(NoSQL),可以执行开展业务所需的标准任务,例如进入客户,创建销售订单,开具发票等。但是,当创建报告时,这些报告原本没有预见到它是相当的繁琐。系统只允许您从一个表创建报告,如果您需要来自另一个表的数据,您有两个选项:1。为需要从不同表中查找的每个字段创建所谓的虚拟属性,或者编写UniBasic程序来检索所需的数据。
To meet most of our business needs on the reporting front it is more beneficial for us to export the Data to SQL and then perform reports in SQL, the result is the reports run quicker from SQL and most of the time a reporting tool can be used to create the reports - this can usually be performed by a power user as opposed to someone that has to have quite a high level of programming abilities to just build a report.
为了满足报告方面的大多数业务需求,我们将数据导出到SQL然后在SQL中执行报告更有利,结果是报告从SQL运行得更快,并且大多数情况下可以使用报告工具创建报告 - 这通常可以由高级用户执行,而不是必须具有相当高的编程能力来构建报告的人。
It would have been nice if it had already been in SQL in the first place.
如果它首先已经在SQL中,那将是很好的。
But maybe some other NoSQL database has better functionality than UniData, that said too usually 3rd party support for NoSQL database engines comes at a higher premium because there are less specialists available than 3rd party support for SQL engines.
但也许其他一些NoSQL数据库具有比UniData更好的功能,它说通常第三方对NoSQL数据库引擎的支持更高,因为可用的专家数量少于第三方对SQL引擎的支持。
#1
3
Our ERP system is based on UniData (NoSQL), it is okay for performing the standard tasks needed to do business like entering in customers, creating sales orders, invoicing etc. But when it comes to creating reports that were not originally foreseen it is quite cumbersome. The system only lets you create reports off of one table, if you need data from another table you have two options: 1. Create what is called a virtual attribute for every field you need to look up from a different table, Or write a UniBasic program to retrieve the data needed.
我们的ERP系统基于UniData(NoSQL),可以执行开展业务所需的标准任务,例如进入客户,创建销售订单,开具发票等。但是,当创建报告时,这些报告原本没有预见到它是相当的繁琐。系统只允许您从一个表创建报告,如果您需要来自另一个表的数据,您有两个选项:1。为需要从不同表中查找的每个字段创建所谓的虚拟属性,或者编写UniBasic程序来检索所需的数据。
To meet most of our business needs on the reporting front it is more beneficial for us to export the Data to SQL and then perform reports in SQL, the result is the reports run quicker from SQL and most of the time a reporting tool can be used to create the reports - this can usually be performed by a power user as opposed to someone that has to have quite a high level of programming abilities to just build a report.
为了满足报告方面的大多数业务需求,我们将数据导出到SQL然后在SQL中执行报告更有利,结果是报告从SQL运行得更快,并且大多数情况下可以使用报告工具创建报告 - 这通常可以由高级用户执行,而不是必须具有相当高的编程能力来构建报告的人。
It would have been nice if it had already been in SQL in the first place.
如果它首先已经在SQL中,那将是很好的。
But maybe some other NoSQL database has better functionality than UniData, that said too usually 3rd party support for NoSQL database engines comes at a higher premium because there are less specialists available than 3rd party support for SQL engines.
但也许其他一些NoSQL数据库具有比UniData更好的功能,它说通常第三方对NoSQL数据库引擎的支持更高,因为可用的专家数量少于第三方对SQL引擎的支持。