我是数据库设计和 MVC 编程的新手,所以我正在寻求有关数据库设计最佳实践的建议,以及如何解决我当前结构正在创建的问题。
我有一个跟踪位置的数据库(为了使其尽可能简单,想想类似于 Yelp 的东西)。它包含两个具有以下字段的表:
- 位置:LocationID、RestaurantType(可以是意大利文、日文等)、营业时间、评分以及有关位置的许多其他详细信息(20 多个字段)。
- LocationContact:LocationContactID、Address、State、ZIP、URL 和 LocationID 作为外键,用于在 Location 表中查找其余详细信息。
尽管两者都引用相同类型的数据,但我将其拆分为两个表,因为应用程序将主要按位置搜索,因此它会通过查看 LocationContact 表找到最近的餐馆(而不是必须通过一个有 30 个表+ 字段)。一旦选择了几个,它可以通过在 Location 表中找到 LocationID 来提供更多详细信息。
首先,我想知道这是否是一个好的设计,或者我是否应该将两者一起作为一个大的 Location 表,如果拆分它们不会对效率产生任何影响。这将解决我遇到的以下编码问题。
当我在 Visual Studio 中为 CRUD 操作生成 MVC 代码时,问题就出现了。为 Location 生成的脚手架代码只允许我创建或删除 Location 条目,并且我必须为 LocationContact 生成单独的 CRUD 操作。可以想象,在输入新位置时,需要同时输入详细信息和联系信息;删除和更新也是如此。目前我必须为 Location 创建一个条目,记住 LocationID,然后使用 LocationID 作为外键创建一个单独的 LocationContact 条目。删除也得分两步完成(先删除LocationContact再删除Location),非常繁琐。
我是否必须手动修复这个问题(或者更糟糕的是,通过控制器处理它),还是我可以告诉 Visual Studio 这两个表应该一起处理?我熟悉 Visual Studio 如何自动处理查找表,所以我希望它在这里做类似的事情。我也在使用实体框架。
任何意见是极大的赞赏。如果有什么不够清楚或需要更多细节,请告诉我。谢谢!