SQL - 组织多个帖子/记录类型的最有效方法

时间:2015-01-21 12:01:29

标签: php mysql laravel database-design eloquent

我目前正在计划一个包含3种记录类型的应用程序。目前我计划为每种类型创建一个表,因为每种类型都包含不同的信息,但我正在考虑更好的方法,因为每种类型都有一些基本的信息。

类型(以及当前型号)是Event,Hotel,Shop。它们都共享一些基本信息,如title,description,user_id,category_id,times等。

我在想的是创建一个名为“Places”的表,并为每种类型创建一个带有“type”列而不是Model的记录,然后为一个元表添加一个meta_id,它将保存可选的/每种记录类型的额外信息。

那么哪种方法会更好?我应该将类型保存在单独的表格和模型中,以便每种类型都完全隔离吗?

2 个答案:

答案 0 :(得分:0)

更好的方法是将类型保存在单独的表中。这将有助于您添加多个信息。

答案 1 :(得分:0)

我将按如下方式重新解释您的问题:何时将不同类型建模为某些常见超类型的不同子类型更好?何时将它们视为代表不同实体的不同类型更好?

答案是,这取决于。如果您正在进行对象建模,那么您提出的每种类型都是通用类型“对象”的子类型。但是,如果您正在进行ER建模或关系数据建模,那么这个概念可能会有所帮助或无益,具体取决于手头的情况。

在您的情况下,活动,酒店和商店的共同特征是如此微不足道,以至于将它们组合成一些常见超类型的专业化似乎比购买成本更少。至少这是我乍一看的样子。

这取决于您的设计目标。你想要实现什么目标?通常,设计人员追求多个目标,其中包括速度,灵活性,易用性和易编程性。这些目标对你有多重要?