【问题标题】:Should I modify database table structure in a dynamic database web application?我应该在动态数据库 Web 应用程序中修改数据库表结构吗?
【发布时间】:2013-07-30 22:29:12
【问题描述】:

我正计划编写一个 Web 应用程序来开发类似于 Zoho 的自定义软件。

我认为当用户在表单中添加或删除控件时,我应该使用 DDL 向表中动态添加列。前几天我和一个朋友讨论这个问题,他建议修改数据库结构不是一个好主意。它可能非常不安全,因为您需要为 Web 应用程序授予管理员权限。而是使用 MongoDB 之类的东西。

我很想知道Zoho 是如何实现这一点的。从 Web 应用程序修改数据库结构真的不是一个好主意吗?

【问题讨论】:

    标签: sql database web-applications database-design ddl


    【解决方案1】:

    我认为您最好使用其他表,其中包含用户的 id 和控件以及您可能必须使它们在您的应用程序中唯一的一些其他标识符。

    您事先定义了您的数据库和业务流程,然后,用户添加的信息应被视为数据。

    假设您有 2 亿条记录,并且您想添加一个新控件。您将向 2 亿条记录添加一个新值(即使它为空),而不是在不同的表中插入一个新值。

    关于 zoho creator,您可以在幕后以您可能喜欢的方式查看this post

    【讨论】:

    • 它是一个动态数据管理应用程序。您不能事先定义数据库结构/流程。
    • 我认为它仍然适用。您无法预先定义的部分是用户正在创建的数据库,但您的数据库应该预先锁定。在创建用于他们的应用程序的表的过程中,您将来自他们选择的控件的信息存储在一个包含用户 ID、他们正在构建的表和控件 ID 的表中,然后您将表/列在他完成后持久化。
    • @Cracker 当然可以。仅仅因为应用程序是动态的,并不意味着架构也必须如此。当然,您的需求可能会证明使用 MongoDB 等不同工具的合理性,但要确定这一点,您需要更多地了解您的需求。
    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多