Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
h 1
#ifndef DOMAINMODEL_H
#define DOMAINMODEL_H
#include <QString>
#include <QList>
#include <QDateTime>
#include <QSharedData>
#include <QSharedDataPointer>
namespace DBConan
{
class PrimaryKey;
class ForeignKey;
class Table;
class Column;
QString name;
QString type;
QString keyName;
int position;
QString description;
};
class Column
{
private:
QSharedDataPointer<ColumnData> d;
public:
Column();
Column(QString name, QString type, QString keyName, int position,
QString description);
Column(const Column & other);
int position;
Column column;
};
class KeyElement
{
private:
QSharedDataPointer<KeyElementData> d;
public:
KeyElement();
KeyElement(Column column, int position);
KeyElement(const KeyElement & other);
DomainModel.h 2
int position() const;
Column column() const;
};
QString name;
bool allPossibleForeignKeysLocked;
QList<Column> columns;
QList<ForeignKey> foreignKeys;
QList<ForeignKey> allPossibleForeignKeys;
QList<PrimaryKey> primaryKey;
};
class Table
{
private:
QSharedDataPointer<TableData> d;
public:
Table();
Table(QString name, QList<QString> columnNames, QList<QString> columnTypes,
QList<QString> columnKeyNames, QString primaryKeyName,
QList<QString> primaryKeyColumnNames);
Table(const Table & other);
QString name;
QList<KeyElement> elements;
QList<ForeignKey> foreignKeys;
Table table;
};
class PrimaryKey
{
private:
QSharedDataPointer<PrimaryKeyData> d;
public:
PrimaryKey();
PrimaryKey(Table table, QString name, QList<KeyElement> elements);
PrimaryKey(const PrimaryKey & other);
QString name;
QList<KeyElement> elements;
PrimaryKey primaryKey;
Table table;
};
class ForeignKey
{
private:
QSharedDataPointer<ForeignKeyData> d;
public:
ForeignKey();
ForeignKey(Table table, QString name, QList<KeyElement> elements,
PrimaryKey primaryKey);
ForeignKey(const ForeignKey & other);
QString host;
int port;
QString dbName;
QString name;
QString userName;
QDateTime dateOfCreation;
QString description;
QList<Table> tables;
};
public:
Schema();
Schema(QString host, int port, QString dbName, QString name, QString
userName,
QDateTime dateOfCreation, QString description);
Schema(const Schema & other);
#endif // DOMAINMODEL_H