![]() | |
#11
| ||||
| ||||
|
|
"--CELKO--" <jcelko212 (AT) earthlink (DOT) net> wrote in message news:1163812193.197964.264340 (AT) k70g2000cwa (DOT) googlegroups.com... .. there is no reason why he cannot use a sequence or GUID for his primary id. Validation? Verification? Portability? It depends on how you design a distributed database. The primary key does not need to be portable as it will be different in different layers. If his attribute requirement is dynamic, he will require another solution. Now.....what would you suggest if this was the case! ;0) More research. --CELKO-- That's always the easy answer isn't Celko? I mean, your views are well respected on a conceptual level, but your have never said anything remotely acceptable towards an acceptable practical solution when there is a requirement. There are instances where one needs dynamic attributes. There is so much you can do with table partitioning to group them. Imagine a database to hold the layout on a screen and to store the objects created. Some objects will have HEIGHT, WIDTH, COLOR etc, but some objects such as Windows will have VIRTUAL-HEIGHT. Others will have other properties not present in other objects. You can either go down a path where every identifiable attribute is put in the table, or seperate every object type into its own table - but this will mean a database change everytime a new object type is created. |
|
Alternatively, you can look at solutions which whilst are not conceptually perfect, offer a practical solution. Of course, you can also look at other technologies such as object databases. |
|
However, the principles you apply are based on the relational condition that you are in control of all information and all its dependencies in order to create those relationships. |
|
There are scenarios where we do not know what properties an item has that needs to be registered. |
#12
| ||||||
| ||||||
|
|
Based on your desire for "practical" answers, AMO, I wonder what your background is. For reference, here's a brief summary of mine: BS Physics, I moved from research to programming manufacturing systems and embedded systems. Along the way I got a MS Engineering. As the needs of some embedded systems became greater, I moved into databases. I've been involved in database work as my primary focus for over 10years now. |
|
Now the reason I mention that. My scientific training emphasized that when you build a model of something (in a database or in theoretical equations), you must make choices about what you include and what you leave out. And you cannot always know what a new factor might be required/discovered. IOW no matter how hard you try, AMO, you cannot predict the long term future. So sometime you have to adjust your model (new tables in the database, new factors in the equations). |
|
But it is not so bad. Within the area you want to model, you can have a lot of flexibility. (That's one of the reasons in another thread I mentioned Newton and Einstein. Newton's model is not wrong as long as you only apply it in the proper context.) That screen layout database is not so hard. You can get a lot of features implemented that do not limit the users. Are you suggesting that your database design today will be able to handle when browsers have to deal with 3D holographic displays? |
|
As I have said, you seem to choose these ID attributes as a first choice. You seem to be the radical one here. |
|
You ARE in control in the sense that you control what goes into your model and ultimately into your database. |

|
Well what you seem to be saying here is you want your DB to be infinitely extensible. The datamodel for that is called the Relational Model. Every Relational DBMS product have a version of the model, and within the dbms it is called the data dictionary. Note that even the vendors have had to add tables to cover new items that "needs to be registered". Rather than create generic object tables the vendors see the advantage of tables specific to the purpose. And the DBMS vendors are fairly practical people, don't you think? Ed |
#13
| |||
| |||
|
|
require an analysis on 'what if x changes'. When you don't know, if it requires database changes and coding or referential data entry to adjust every time there is a change, this is hardly a practical way forward. You talk about proper context, but the issue with dynamic attributes is not an issue of the future - I am posing the question now if you were to design it from the ground up in the relational model knowing that attributes of an object will need to be stored, but you don't know what all of them are. how would you implement dynamic attributes? ... the layout of the data which turned into the possible requirement to store dynamic attributes. If this was the case, its a scenario where you do not know what data is coming your way, and therefore you need to be able to analyse what you do know, what you are likely to get in terms of data and also to cope with what you don't know and architect accordingly. Relational modelling is all very well and good, but there times when if you need to create a seperate table or perform a database change just to be able to receive the data, your solution may well be out of date. |
#14
| |||
| |||
|
|
Lets assume the website like Amazon sells books - this would require an ISBN number. But then, other items such as DVDs do not. |
|
Imagine that Amazon also sells tyres, then attributes of the product would also include size and speed etc. |
![]() |
| Thread Tools | |
| Display Modes | |
| |