X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fcsql.xml;h=f4944410282822326b347c3652938d440c5f78ab;hb=92cad9a9410b8e481987b90cc4f5edd8cc85e7ce;hp=b01abe132ff06aa2760b25f5bab98ec3ee76f671;hpb=243188d5a588c42c3882846ab373d055da7a22e3;p=clsql.git diff --git a/doc/csql.xml b/doc/csql.xml index b01abe1..f494441 100644 --- a/doc/csql.xml +++ b/doc/csql.xml @@ -83,7 +83,7 @@ + url="http://philip.greenspun.com/sql/data-modeling.html"> Philip Greenspun's "SQL For Web Nerds" - Data Modeling @@ -250,7 +250,7 @@ mapped into a database). They would be defined as follows: - :column- - A string which will be used as the + :db-type - A string which will be used as the type specifier for this slots column definition in the database. @@ -292,6 +292,17 @@ mapped into a database). They would be defined as follows: :base-table option specifies what the table name for the view class will be when it is mapped into the database. + + + Another class option is :normalizedp, which signals + &clsql; to use a normalized schema for the mapping from slots to + &sql; columns. By default &clsql; includes all the slots of a parent + class that map to &sql; columns into the child class. This option + tells &clsql; to normalize the schema, so that a join is done on the + primary keys of the concerned tables to get a complete column set + for the classes. For more information, see + def-view-class. + @@ -454,6 +465,24 @@ There are other :join-info options available in &clsql;, but we will save those till we get to the many-to-many relation examples. + + Object Oriented Class Relations + + + &clsql; provides an Object Oriented Data Definition Language, which + provides a mapping from &sql; tables to CLOS objects. By default class + inheritance is handled by including all the columns from parent + classes into the child class. This means your database schema becomes + very much denormalized. The class option :normalizedp + can be used to disable the default behaviour and have &clsql; + normalize the database schemas of inherited classes. + + + + See def-view-class + for more information. + +