c# - 实体应该映射到它自己的数据库表吗?

标签 c# database azure normalization devforce

我正在使用 Azure 和 Idea Blade DevForce 做一些工作,我想知道将实体映射到数据库表的最佳方法是什么......

实体应该在数据库中拥有自己的表吗?这样做对性能有什么好处/坏处吗?

假设我们有一个“订单”实体、一个“产品”实体、一个“客户”实体和一个“地址”实体;将它们混合在一张表中与将它们全部分开有何优点/缺点?显然,如果我们不分离,数据库就不会处于第三范式,但是在使用 MEF/DevForce 时这有关系吗?

作为第二个(不那么做作的)示例,如果我们有一个“帐户”实体和一个“用户”实体怎么办?一个帐户可以有许多用户,但用户只能属于一个帐户......这样,将它们全部放在一个表中就不会重复任何用户数据,但我(个人)仍然认为这种方法是完全错误的。有什么理由说明它会带来好处吗?

最佳答案

取决于您有多喜欢复制数据,以及您是否希望有人认真对待您作为开发人员。将所有内容都扔进堆是我能想到的最糟糕的反模式。

例如,您想要为 2 个客户创建 4 个订单,每个订单包含 5 个产品。每个客户仅您的客户数据就会重复 10 次。

编辑:我应该注意,我对这个问题的回答是强调"is"。我有兴趣听到替代方案的论点......

关于c# - 实体应该映射到它自己的数据库表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9274049/

相关文章:

javascript - MobileServices.web.js 未经授权的 api 调用

c# - c# 中如何处理对象已处置异常未处理的异常?

c# - 在 Azure 辅助角色中使用 kernel32 CreateThread/TerminateThread

php - 根据mysql cake php中传递的日期范围每周对数据进行分组

azure - 如果浏览器选项卡处于非事件状态,则 SignalR 连接超时

asp.net-mvc - 如何获取Azure Files文件的公共(public)URL?

c# - 如何在 NEST 中附加两个 SearchDescriptors

c# - 如何为可滚动UI(Unity)设置滚动距离限制?

sql - Oracle - 仅从列中选择最大值

mysql - 在 Yii 中查询大数据?