我有4种类型的帖子。他们总是将被一起查询。它们包含的数据略有不同。像这样:
LinkPost(title, url)
ImagePost(title, image_file)
EventPost(title, location, start_time, end_time)
TextPost(title, body)
我的解决方案是:
有4个表,并且总是一起查询它们,但这会产生性能问题,因为我主要想要按日期或分数(存储在列中)排序。
有5张桌子。解决方案1中的4,加上一个只有post_id,post_type,created_at,得分的Post表。这将允许我查询一个表,并在其他表中查找数据。
只需将所有内容都放在一个表Post(type, title, url, image_file, location, start_time, end_time, body)
中即可。这将允许我轻松索引和查询。
假设我只有一些帖子“类型”,并且每个只有少量列(意味着任何给定行只有大约5-10列“未使用”)。除了不是3NF之外,还有什么理由不把所有东西放在一张桌子里?这种模式有名称吗?