我有一个表“地点”(id_place,名称,地址,coor_x,coor_y)
我想在一个地方添加他们的“facebook 页面”“twitter 页面”“wesbite”和电话
我的第一个想法是创建一个表,假设 social_contact 包含这些字段,并在地点表 (social_contact_id) 中添加一个额外的列,该列将是 1 到 0..1 的关系(这 4 个字段是可选的,可以为空)
这是好的做法吗?还是我最好将这 4 个新文件直接放入地点表中?
谢谢你!
我希望我不会因为这个简单的答案而被贬低,但我认为答案是“视情况而定”。
至少在 MySQL 世界中(并且在任何地方都是正确的),只有固定宽度列的表可以更快地找到,因此对于主表是固定宽度并放置较少需要的和可变的 -另一个表中的宽度列......它可以是一个很好的速度设计。
另一方面,如果这永远不会是一个大表,而且你通常会获取额外的数据......这可能只是无缘无故地增加你的维护成本......所以最好把事情简单化。
[更新 2015-02-13]
在 20 个字段中,您的表仍然很小。但是,在您的辩护中,我希望有人考虑拆分我使用的一些表,因为每个查询都不需要 80% 的数据(几百列),我们可能可以制作主表如果我们对它进行了一些深思熟虑的话,固定宽度。所以,总是问你是否应该分手的问题是一件好事。但是,同时请记住 YAGNI,这样您就不会在不需要时拆分表。
如果您曾经扩展过您的表格,为您的用户提供单独的“简历”,然后是“个人资料”,以及用户“查看设置”的复杂映射……每一个都可能有很多自己的数据,并且每个都将完全单独加载。简历仅在人们查看时加载,与个人资料相同,“查看设置”仅在用户浏览网站时加载。因此,这些将构成 3 个逻辑上独立的表,因为您将在不同的时间查询它们,而永远不会一起查询。拆分表没有错,你只需要问是否值得。
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |