Andrew Hammond wrote:
> On 3/12/07, Richard Huxton <dev@archonet.com> wrote:
>> Josh Berkus wrote:
>> > I really don't see any way you could implement UDFs other than EAV that
>> > wouldn't be immensely awkward, or result in executing DDL at runtime.
>>
>> What's so horrible about DDL at runtime? Obviously, you're only going to
>> allow specific additions to specific schemas/tables, but why not?
>
> More to the point, since EAV is effectively smearing the semantics of
> DDL with DML, what, if any of the arguments against doing DDL at
> runtime don't apply equally to EAV? Well, aside from being able to say
> "hey, I'm not executing DDL at runtime". :)
>
> I see the issue as one of cost: it's substantially harder to implement
> DDL at runtime than to work around the problem using EAV. If that
> analysis is reasonable, then it would be a very interesting research
> project to see how to cut down that cost of implementation.
Well the cost depends on where/how complex the extra fields are. If
you're just talking about adding columns usercol01..NN with different
types and possibly a lookup to a single client_attributes table, it's
not difficult.
Of course, if inheritence worked fully, you could just have core and
user versions of relevant tables.
-- Richard Huxton Archonet Ltd