On Wed, 13 Sep 2017, Ondrej Pokorny via Lazarus wrote:
On 13.09.2017 20:33, Graeme Geldenhuys via Lazarus wrote:
On 2017-09-13 19:17, Michael Van Canneyt via Lazarus wrote:
Similarly, every field in a database I create is always uniquely named.
So if I ask "where is field TX_ID' I get exactly 1 field, in 1 table.
Graeme Geldenhuys can testify that I use this practice even in very
big databases.
I can confirm that. :)
Huh, that's hardcore :)
Just curious: how do you define foreign keys? E.g.
Customers.ID
Invoices.CustomerID
Orders.CustomerID
create table customer (
C_ID INT Primary key,
C_FIRSTNAME VARCHAR(30),
C_LASTNAME VARCHAR(50)
);
CREATE table invoice (
I_ID INT PRIMARY KEY,
I_CUSTOMER_FK INT,
I_DATE DATE
);
ALTER TABLE INVOICE ADD CONSTRAINT R_INVOICE_CUSTOMER FOREIGN KEY
(I_CUSTOMER_FK) REFERENCES CUSTOMER(C_ID) ON CASCADE DELETE;
3 "rules" :
Prefix is always somehow related to table name. Usually 1 or 2 letters.
Occasionaly 3 (if you have close to 600 tables, 2 letters doesn't always cut it)
Primary key is always Prefix_ID
Foreign key is always Prefix_FOREIGNTABLE_FK
The SQL you construct like this is always unambiguous, unless you use the
same table twice in a single SQL select there is never any need to prefix
the fields with the table name.
Michael.
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus