- 论坛徽章:
- 0
|
关系系统与ORM并不是相同的概念。SQLAlchemy的好处是既可以以对象方式来访问,也可以以传统的方式,记录的方式来访问。所以它是一个集成的东西。Django本身只是ORM,ORM的处理方式与关系系统本本来就不同。所以我不认为django的ORM不好。而且继承,多态这些东西如何去与关系系统相对应,并没有定论。SA的方式只是其中一种,而且只能算是一种简化的方式。因为通过mapping,你只能把关系系统向对象上对映射,但反过来如何呢?SA也不好解决这个问题。而Django的方式还是以Model为主,反而我认为这更是从对象的角度出发,但因为后台是关系的,所以这种方式处理起来并不实用。不过这些倒无所谓,反正你可以自由选择。在很多时候,django的已经够用了。而且它的关系映射我认为还是比较简单。当初看SA的关系映射时就觉得有些麻烦。
关于db_table,下面是从model_api文档中拷贝的:
db_table
The name of the database table to use for the model:
db_table = 'music_album'
If this isn't given, Django will use app_label + '_' + model_class_name. See "Table names" below for more.
If your database table name is an SQL reserved word, or contains characters that aren't allowed in Python variable names -- notably, the hyphen -- that's OK. Django quotes column and table names behind the scenes.
所以,如果不存在这个表,这个db_table就是指定生成的表名,如果已经存在,自然就是使用存在的表名了。一个属性是多种用途的。 |
|