gpt4 book ai didi

database - 最具扩展性的数据库设计

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:59 26 4
gpt4 key购买 nike

我正在从头开始设计一个程序及其数据库。以下场景(SQL 2008 R2,C#)的最佳数据库设计是什么:

该程序将出售给具有不同需求的各种客户。这就是为什么我试图让它尽可能地可扩展。在代码端,我将 DI 用于基于插件的架构。

但是对于数据库端:
每个客户可能希望也可能不希望向用户/实体添加额外信息。具有不同的数据类型。我应该如何设计我的数据库以便能够以最少的接触轻松添加其他数据?

  • 在所需表中创建一个附加列,以 XML 或 CSV 格式存储有关实体的任何其他信息,并在代码隐藏中解析。
  • 创建一个新表,其中包含实体的 ID 并具有键/值对列和数据类型列(例如 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com