存储外键或varchar值

时间:2012-08-07 18:55:31

标签: mysql

我的网站上有多个表格:

最好是从查找表或varchar本身存储外键。

我的两个站点表是

job_profile
    id
    title
    salary_range_seeking
    cv_link
    datetime_created
    job_type

job_type
    id
    type

job type - type值为Full TimePart Time

因此,例如,最好将job_type中的id存储在job_type列中并保持参照完整性,或者在前端使用它,用户选择值并存储文本值在job_type列中。我正在寻找最好的性能选择和推荐的练习。

2 个答案:

答案 0 :(得分:0)

使用外键而不是将文本值存储在字段中会获得更好的性能,因为它会减少使用的内存量。

当字段的值(在这种情况下为job_type)将以高速率重复时,这是推荐的做法。

答案 1 :(得分:0)

读取或写入的性能?或运行报告?存储数据的方式很大程度上取决于你打算用它做什么,以及你打算如何做到这一点。

现在,通常接受存储id而不是varchar,这有几个原因,但主要原因是它是普遍接受的方式。这将为将来更轻松地为您的工作提供支持,也可能对您而言。使用您提供的基本布局,无论您使用何种数据,都应该对性能几乎没有任何影响。

如果job_profile表的主要用途是从中运行报告,则通过存储varchar而不需要进行连接可以获得更好的性能。这种类型的反规范化通常会在数据仓库类型的应用程序中看到,您可以使用更多的内存和存储来更快地检索和呈现数据。