zoukankan      html  css  js  c++  java
  • ORM的思考2 对象建模


    ORM的思考2 对象建模


    单刀直入

    我认为,目前的ORM模型,最大的一个问题,就是没有分离数据和元数据。

    在关系数据库里面,SQL都分至少有2种,操作数据,操作元数据(Schema)。特别是后者:

     

    CREATE TABLE TABLE1
    {
    ID 
    TEXT

    }

     

    然而,在ORM中这个优秀的传统没被继承,变成了一大堆的attribute, xml配置文件。一个Class经常看见:

    class Person
    {
    [PrimaryKey]
    string name;

    [Column]
    string address;

    .
    }

    多么的混乱,一个用户为了使用对象,首先就要忙着“部署”元数据。当稍微的一点改变,立刻焦头烂额。。。(这个对象的字段到底是哪张表的??? :-))


    我的IDEA - 面向对象的元数据操作

    在c#里面,一个对象包含了域和方法,域就是元数据,例如下面类中的name, card等。

    class Person
    {
    string name;
    Card card;
    List
    <Email> emailS;
    }

    class Email
    {
    string address;
    }

    class Card
    {
    string name;
    }


    那么创建这个类的命令:

    CREATE OBJECT EMAIL
    {
    ADDRESS STRING
    }

    CREATE OBJECT CARD
    {
    NAME STRING
    }

    CREATE OBJECT PERSON
    {
    NAME STRING,
    CARD OBJECT,
    EMAILS COLLECTION
    }

    多么的清楚!

    通过创建了元数据,用户可以使用非常干净的对象了。我甚至可以:

    DROP OBJECT EMAIL;

    ALTER OBJECT PERSON ADD EMAIL COLLECTION

    ALTER OBJECT PERSON ADD PRIMARYKEY NAME

    ALTER OBJECT PERSON DROP EMAIL

    ALTER OBJECT PERSON DROP PRIMARYKEY NAME

    不知道大家怎么想。如果不同意的请告诉我一个原因或者解决方案。谢谢!


  • 相关阅读:
    [ActionSprit 3.0] FMS直播
    Selenium学习之==>Css Selector使用方法
    Selenium学习之==>Xpath使用方法
    Selenium学习之==>WebDriver驱动对照表
    Selenium学习之==>Selenium介绍
    HTML学习之==>JS
    HTML学习之==>DOM操作
    HTML学习之==>CSS
    HTML学习之==>HTML标签
    Python学习之==>线程&&进程
  • 原文地址:https://www.cnblogs.com/zc22/p/930438.html
Copyright © 2011-2022 走看看