当前位置: 首页 > 面试题库 >

在数据库中存储多项选择值

侯涵煦
2023-03-14
问题内容

假设我为用户提供了检查她说的语言并将其存储在数据库中的功能。重要的旁注,我将不会在db中搜索这些值中的任何一个,因为我将使用一些单独的搜索引擎进行搜索。现在,存储这些值的明显方法是创建一个像

UserLanguages
(
 UserID nvarchar(50),
 LookupLanguageID int
)

但是该站点将承受很高的负载,因此我们正在尝试消除所有开销,因此,为了避免在UI上显示结果时与主成员表联接,我考虑在主表中存储用户的语言,逗号分隔,例如“
12,34,65”

同样,我不搜索它们,因此我不必担心必须在该列上进行全文索引。

我确实看不到此解决方案有任何问题,但是我是否忽略了任何内容?

谢谢,安德烈


问题答案:

您可能现在没有丢失任何内容,但是当您对需求进行更改时,您可能会后悔该决定。您应该像第一个本能一样将其标准化存储。那是正确的方法。

您的建议是经典的过早优化。您尚不知道该联接是否会成为瓶颈,因此您也不知道您是否实际上在购买任何性能改进。等到您可以对事物进行概要分析,然后您将知道是否需要优化该事物。

如果是这样,我会考虑使用物化视图或其他一些方法,这些方法使用规范化的数据预先计算答案到不视为记录簿的缓存中。

更一般而言,如有必要,可以进行很多可能的优化,而不会以建议的方式损害您的设计。



 类似资料:
  • 我在mysql数据库中有名为的表,其中存在类、学生姓名等。 我想在jsp中使用select选项,这样当且仅当首先选择class时,在选择class之后,该特定类的所有学生姓名都应该通过从数据库中检索记录自动(动态)显示在另一个select下拉列表中。 在这里我想使用servlet进行数据库连接,并通过通过jsp访问所有数据库记录

  • 我正在Eclipse中执行动态web项目 我在我的jsp页面中使用下拉列表 例如 但我需要为每个选项存储多个值,以便有任何解决方案。。?? 我需要如果用户选择第一个选项,我需要多个选项值 指-- 当用户选择该选项时,我需要4个不同的值,以便有任何解决方案,或者在jsp中有任何替代方案可用于执行该任务。。。??

  • 问题内容: 因此,在C ++ / C#中,您可以创建标志枚举来保存多个值,并且在数据库中存储单个有意义的整数当然是微不足道的。 在Java中,您有EnumSets,这似乎是在内存中传递枚举的一种很好的方法,但是如何将组合的EnumSet输出为整数进行存储?还有另一种方法可以解决这个问题吗? 问题答案:

  • 我目前正在从事一个Laravel项目,我需要将用户注册期间收到的数据内容保存在一个名为users的表中。我能够在表中正确保存其他值,但html选择选项的值除外。 下面是我的html表单: 这里是我的laravel控制器添加所需的值到数据库: 但每次我在数据库中检查signup_type的值时,它总是为null。

  • 我创建了一个TextView,它以多行显示值 ,我希望将该值保留在SQLite数据库中。这是我使用的代码: 问题是当我保存值时,整个值被插入到一个单元格中。我希望每行的值分开,然后插入到每行的单个单元格中,尽管我使用扫描器方法插入数据,但它不起作用。那有什么办法吗?

  • 我在本地发布了一个依赖项。依赖项位于路径上 我认为这是Windows上的默认路径。 现在,在另一个项目中,我尝试使用这个库。我的<code>构建。gradle如下所示(以及其他依赖项) 我收到构建错误,某些类不存在等... 这不足以从本地存储库中识别依赖项吗? 我也为其他依赖项使用远程存储库,但工件名称版本是唯一的(com.mycompany:mylibrary:1.0)。我希望从本地存储库中找到