Agree with Jeremey. And we can't just slip in a change to 2.0 that does part of 
this. 

I'm -1 on neuman's change, at least for 2.0. 

Cheers,
JvD



> On Nov 30, 2016, at 08:23, Jeremy Mitchell <mitchell...@gmail.com> wrote:
> 
> Let's look at an example of using ID's versus names for POSTS (creates)
> 
> Here is the region table. A region belongs to a division.
> 
> mysql> desc region;
> +--------------+-------------+------+-----+-------------------+-----------------------------+
> | Field        | Type        | Null | Key | Default           | Extra
>                |
> +--------------+-------------+------+-----+-------------------+-----------------------------+
> | id           | int(11)     | NO   | PRI | NULL              |
> auto_increment              |
> | name         | varchar(45) | NO   | UNI | NULL              |
>                |
> | division     | int(11)     | NO   | MUL | NULL              |
>                |
> | last_updated | timestamp   | YES  |     | CURRENT_TIMESTAMP | on update
> CURRENT_TIMESTAMP |
> +--------------+-------------+------+-----+-------------------+-----------------------------+
> 4 rows in set (0.01 sec)
> 
> Currently, if you want to create a region, you have to provide a division
> "id" (as opposed to a division name)
> 
> POST /api/version/regions
> 
> {
> name: "myregion",
> division: 2
> }
> 
> This allows the json to go directly into the table with one insert query.
> 
> if we use a division name instead, like this
> 
> {
> name: "myregion",
> division: "central"
> }
> 
> then 2 queries have to happen on the server side. 1 query to fetch the
> division id for "central" and then the insert query to create the region.
> 
> To do this right, imo, the ID for the central division WOULD be "central"
> instead of the number 2 - and this is why natural keys make a lot of sense.
> So rather than changing the api to accept cdn name, profile name, and type
> name, continue to send thru the ids and we need to make the effort to get
> to natural keys.
> 
> my 2 cents
> 
> On Wed, Nov 30, 2016 at 7:53 AM, Dave Neuman <neu...@apache.org> wrote:
> 
>> Thanks Derek, it's actually already done, but then it dawned on me that it
>> might break others, which is why I posted.
>> 
>> On Wed, Nov 30, 2016 at 7:51 AM, Gelinas, Derek <derek_geli...@comcast.com
>>> 
>> wrote:
>> 
>>> I've already got a bit of code you can use for just that if you like.
>>> Doing the same for the config file lookups.
>>> 
>>>> On Nov 30, 2016, at 9:50 AM, Dave Neuman <neu...@apache.org> wrote:
>>>> 
>>>> Hey all,
>>>> I have been working on creating some integration tests for the Traffic
>>> Ops
>>>> client in the psql-rebase branch and fixing any bugs in Traffic Ops
>> along
>>>> the way.
>>>> One thing I would like to change is to have the DeliveryService.create
>>> and
>>>> Deliveryservice.update in the Traffic Ops API accept cdn name, profile
>>>> name, and type name instead of cdn ID, profile ID, and type ID.  I
>>> usually
>>>> don't like to have clients worry about IDs, I think it should be
>> handled
>>> on
>>>> the server side.  I don't know who all is using the Deliveryservice
>>> create
>>>> and update APIs, if anyone, so I thought I would make the suggestion
>> here
>>>> and see if anyone is opposed?
>>>> This change would be in a 2.x version of Traffic Ops.
>>>> 
>>>> Thanks,
>>>> Dave
>>> 
>> 

Reply via email to