想象一个简单的数据库(MySQL),其中包含可以附加到对象的对象和标记。将标记存储在单独的表中(所以你有表标记,对象,tag_has_object)比制作两个表(标记和对象,其中标记不保存为数字而是直接作为字符串)有什么好处。
虽然我习惯于把一切都变成关系,但是有人提议以第二种方式(两张表)来做,而且我不能提出任何反驳论据。一个人有优势吗?
答案 0 :(得分:1)
主要区别在于您打算如何使用它。
标签为字符串:
标签为表格:
因此,如果你的应用程序不是很大,那么使用字符串就没有问题了。
答案 1 :(得分:1)
三表选项意味着您有一个与对象关联的预定义标记列表。两个表选项意味着标签是自由文本,可以是任何值。
在三个表选项中,您是否选择将另一个代理数字键添加到tags表并在链接表中使用此引用,或者使用标记本身作为键和引用这是一个基于实用的选择关于熟悉度,不可约性,稳定性和简单性的标准。考虑到所有这些因素,您需要确定代理键是否适合您的特定情况。
需要考虑的一些事项
只有标签本身的自然键。
使用额外的代理键:
答案 2 :(得分:1)
值得考虑使用数据的方式。
明显的情况是:
通常,在插入记录以进行快速检索时,我会接受一些额外的痛苦,因为在大多数应用程序中,您执行的读取次数多于写入次数。