- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在从头开始设计一个程序及其数据库。以下场景(SQL 2008 R2,C#)的最佳数据库设计是什么:
该程序将出售给具有不同需求的各种客户。这就是为什么我试图让它尽可能地可扩展。在代码端,我将 DI 用于基于插件的架构。
但是对于数据库端:
每个客户可能希望也可能不希望向用户/实体添加额外信息。具有不同的数据类型。我应该如何设计我的数据库以便能够以最少的接触轻松添加其他数据?
Key="IsPremiumMember", DataType="boolean", value="true"
) 并在代码隐藏中解析它。 您会建议哪种方法,为什么?
我应该考虑其他任何解决方法吗?
谢谢。
最佳答案
How should I design my db to be able to easily add additional data with minimum touch?
如果可能列的范围是可枚举的,那么您可以使用标准列构建您的表,并允许您的客户从您的可能列列表中添加其他列。这将很灵活,而且不会太难用 SQL 编写代码。
如果可能列的范围未知,您可以使用键/类型/值模式。正如 marc_s 所说,它很灵活,但更难编写 SQL。
最后,您可以允许您的客户使用他们希望的任何列来定义表格。您的软件必须读取数据库系统列和数据库系统索引表以确定列名和索引路径是什么。这种软件的编写难度至少要高一个数量级,因为 SQL 是由数据库系统表的结果生成的。
关于database - 最具扩展性的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6125136/
下午好 我创建了一个将 Verilog 语言注册为有效内容类型的 visual studio 包。 我的语法高亮、大纲、智能缩进等都可以正常工作。 但是,我希望能够让 Visual Studio 通过
我处于工具窗口的焦点中。通过在 TreeView 节点上双击,光标必须移动到打开的源代码文档中的特定行。我通过调用 Edit.GoTo Line 命令解决了这个问题,如下所示: var command
我需要为自定义项目模板实现某种可扩展性。 打开 C# 代码文件,如果...: ...当前项目有一些特定的类型 ID。 ...代码文件是一个类,继承了一些具体的基类。 ...用户按下了 F5。 ...我
我已经阅读了大量关于 VS2010 中可扩展性故事的改进(即基于 MEF 等)的大量改进,但还没有弄脏我的手。我最近遇到了一个让我想深入研究的真实场景,但我很惊讶没有找到很多关于启动和运行我想要构建的
我的一位客户要求我们开发一个“VBA 宏”。然而,在 2010 年代,仍然使用这种过时的语言对我来说似乎很奇怪,我正在考虑尝试说服客户使用 VSTO dev。然而,由于我对这两个世界都是新手,我需要帮
我正在将 Git 集成添加到我的 Visual Studio 扩展 Diff All Files ,它允许快速比较(即比较)Team Explorer 窗口中的所有文件与以前的版本。我让它与 Git
我是一名优秀的程序员,十分优秀!