mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-19 16:48:42 +02:00
Improved the check on data model consistency: detection of SQL columns used by two attributes
SVN:1.2[1800]
This commit is contained in:
@@ -3075,7 +3075,36 @@ if (!array_key_exists($sAttCode, self::$m_aAttribDefs[$sClass]))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check unicity of the SQL columns
|
||||
//
|
||||
if (self::HasTable($sClass))
|
||||
{
|
||||
$aTableColumns = array(); // array of column => attcode (the column is used by this attribute)
|
||||
$aTableColumns[self::DBGetKey($sClass)] = 'id';
|
||||
|
||||
// Check that SQL columns are declared only once
|
||||
//
|
||||
foreach(self::ListAttributeDefs($sClass) as $sAttCode=>$oAttDef)
|
||||
{
|
||||
// Skip this attribute if not originaly defined in this class
|
||||
if (self::$m_aAttribOrigins[$sClass][$sAttCode] != $sClass) continue;
|
||||
|
||||
foreach($oAttDef->GetSQLColumns() as $sField => $sDBFieldType)
|
||||
{
|
||||
if (array_key_exists($sField, $aTableColumns))
|
||||
{
|
||||
$aErrors[$sClass][] = "Column '$sField' declared for attribute $sAttCode, but already used for attribute ".$aTableColumns[$sField];
|
||||
$aSugFix[$sClass][] = "Please find another name for the SQL column";
|
||||
}
|
||||
else
|
||||
{
|
||||
$aTableColumns[$sField] = $sAttCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} // foreach class
|
||||
|
||||
if (count($aErrors) > 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user