【发布时间】:2017-05-05 22:04:24
【问题描述】:
我想为 cms 设计 menus 表。我已经有categories 和contents 表。菜单是指向特定类别或内容的链接,也可以是来自其他网站的 url。
如何定义每个菜单是一个类别还是一个内容?
我教过 category_id、content_id 和 url 列都可以为空是很好的。
这是一个好方法吗?最好的方法是什么?
我是否应该添加一个名为menu_type 的列来定义菜单类型,它可以具有以下值:url、类别或内容。是否需要创建另一个这样的表:
标识 | type_name
1 |类别
2 |内容
3 |网址
并在 menu_type 列中为内容的类别 2 插入 1...作为外键?
非常感谢。
【问题讨论】:
-
如果您没有任何与该类型特别相关的额外属性,您可以使用
enum()列。有了它,字符串“category”、“content”和“url”只存储一次,每个记录上都存储一个ID。但是,当您查询表时,MySQL 知道返回字符串而不是 ID。您也可以按字符串或 ID 进行搜索。所以WHERE type = 0和WHERE type = 'category'会返回相同的东西 -
非常感谢。这是一个很好的解决方案!
标签: php mysql laravel database-design